搜尋本站文章

2013-05-02

認識 Foreach 迴圈容器(Foreach Loop) - 以 SSIS 2012 為例


示範版本:SQL Server 2012
開發工具:SSDT - Visual Studio 2012

認識 Foreach 迴圈容器(Foreach Loop)

「Foreach 迴圈」容器定義封裝中重複的控制流程。

迴圈實作與程式設計語言中 Foreach 迴圈的結構類似。

在封裝中,迴圈是使用 Foreach 列舉值啟用。

「Foreach 迴圈」容器會為指定列舉值的每個成員重複控制流程。


SQL Server Integration Services 提供下列列舉值類型:

  • Foreach ADO 列舉值,用來列舉資料表中的資料列。 例如,您可以在 ADO 資料錄集中取得資料列。
  • 資料錄集目的地會將記憶體中的資料儲存到 Object 資料類型之封裝變數中儲存的資料錄集。您通常會使用具有 Foreach ADO 列舉值的 Foreach 迴圈容器來一次處理資料錄集的一個資料列。 針對 Foreach ADO 列舉值指定的變數必須屬於 Object 資料類型。
  • 「Foreach ADO.NET 結構描述資料列集」列舉值,用來列舉有關資料來源的結構描述資訊。 例如,您可以列舉並取得一份 AdventureWorks2012 SQL Server 資料庫中資料表的清單。
  • 「Foreach 檔案」列舉值,用來列舉資料夾中的檔案。 列舉值可往返子資料夾。 例如,您可以讀取 Windows 資料夾及其子資料夾中所有副檔名為 *.log 的檔案。
  • Foreach From Variable 列舉值,用來列舉指定的變數所包含的可列舉物件。 可列舉物件可以是陣列、ADO.NET DataTable、Integration Services 列舉值等等。 例如,您可以列舉包含伺服器名稱之陣列的值。
  • 「Foreach 項目」列舉值,用來列舉集合項目。 例如,您可以列舉「執行處理」工作使用之可執行檔與工作目錄的名稱。
  • Foreach Nodelist 列舉值,用來列舉 XML 路徑語言 (XPath) 運算式的結果集。 例如,此運算式會列舉並取得一份古典時期所有作者的清單:/authors/author[@period='classical']。
  • Foreach SMO 列舉值,用來列舉 SQL Server Management Objects (SMO) 物件。 例如,您可以列舉並取得一份 SQL Server 資料庫中檢視的清單。





影片:
認識 Foreach 迴圈容器(Foreach Loop) - 以 SSIS 2012 為例





參考資料

Foreach 迴圈容器
http://technet.microsoft.com/zh-tw/library/ms141724.aspx