首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Integration Services:容器完整指南—— Sequence、For Loop、Foreach Loop 實戰

     編輯:關於.NET

容器讓控制流結構化、模組化,易於管理維護。SSIS 三大核心容器:

  • 序列容器:分組相關任務,視覺整理
  • For 迴圈:固定/條件式重複執行
  • Foreach 迴圈:枚舉集合逐項處理(最常用)

序列容器:視覺分組神器

將財務/業務等不同領域任務分別放入序列容器,點擊右上角箭頭可摺疊:

序列容器展開 序列容器摺疊

不影響執行邏輯,純粹結構化管理。

For 迴圈:三表達式控制流程

屬性頁設定三個運算式:

For 迴圈屬性

  • InitExpression:@Counter = 0
  • EvalExpression:@Counter < 10
  • AssignExpression:@Counter = @Counter + 1

將重複任務拖入容器即可。亦可設 EvalExpression = true 做無限輪詢(監控錯誤數、檔案變更、網路狀態)。

Foreach 迴圈:兩大經典枚舉器實戰

1. Foreach 檔案枚舉器—— 批次處理目錄下所有 Log

IIS Log 每天產生大量檔案,手工逐一處理不現實。

  1. Enumerator 選 Foreach File Enumerator
  2. 資料夾路徑、檔案通配符(如 *.log)、遞迴子目錄
  3. Foreach 檔案枚舉器設定
  4. 變數對應:Index 0 → User::LogFile (String)
  5. 變數對應
  6. 連線管理員中,平面檔案連線 ConnectionString 設運算式 @[User::LogFile]

執行結果自動逐檔處理:

Foreach 檔案枚舉執行結果

容器內可加「檔案系統任務」搬移/刪除已處理檔案,避免重複。

2. Foreach ADO 枚舉器—— 動態跨資料庫同步

場景:連鎖專賣店各自本地資料庫,總部需定時同步銷售數據。若每店建一連線+一任務,擴充極困難。

解法:總部建 DbConfig 表存各店連線字串,Foreach ADO 枚舉逐行處理。

  1. 建立變數:ConnectionString (String)、DataSet (Object)
  2. 變數定義
  3. 控制流加「執行 SQL 任務」:
    連線→總部資料庫
    SQL:SELECT 'Data Source=' + strDBServerIP + ';User ID=' + strDBUserID + ';Initial Catalog=HumanResource;Provider=SQLNCLI10;Auto Translate=True;' AS ConnectionString FROM DbConfig
    ResultSet:完整結果集 → 對應 User::DataSet (Object)
    SQL 任務設定 結果集對應
  4. Foreach 迴圈:Enumerator 選 Foreach ADO Enumerator,ADO 物件來源變數 User::DataSet,列映射 Index 0 → User::ConnectionString
    ADO 枚舉器設定 ADO 變數映射
  5. 目標資料庫連線管理員 ConnectionString 運算式設 @[User::ConnectionString]
    動態連線字串

新增專賣店只需在 DbConfig 加一筆記錄,封裝零修改自動套用。

容器巢狀與作用域隔離

容器可多層巢狀,各擁有獨立作用域與命名空間,善用可構建高結構化、可維護的 SSIS 方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved