SSIS – For Loop Container

來源:互聯網
上載者:User

今天給大家介紹 SSIS 2008 中的第一個容器:For Loop Container,
這個容器在實際的應用中用的不是很多,但是在某些特殊的場合還是很有用的。它用來實現對一個變數的迴圈,在迴圈之中對變數賦值,當滿足這個迴圈的終止條件
的時候,它就退出這個迴圈。它的功能類似於結構化程式設計語言的 Do While 結構, 比如下面的結構實現了 1 到10 相加的效果。
 
A = 1
B = 0
Do While A = 10
B = B + A
A = A + 1
End

目的:

我有一個表 Clients, 它包括2個欄位,ClientID 和 ClientName, 我要使用這個 For Loop
Container 在這個表裡增加10 個記錄。Client ID 列是個 IdentityKey, 可以自動賦值,ClientName
我使用 For Loop Container 給它賦值,下面是建立這個 For Loop Container 的步驟。

現在我就用一個例子來說明它的使用方法:

  • 建立一個 SSIS Pakcage, 把它命名為 SSIS Containers
  • 增加兩個系統變數:LoopValue, Int32, 它用來儲存我們迴圈中將要用到的迴圈變數的值;EndValue, Int 32, 它用來儲存迴圈的終止值,我把它設定為10.
  • 把 For Loop Container 從工具箱中拖到 Control Flow 頁面中
  • 雙擊這個 For Loop Container, 開啟 For Loop 的編輯器,這個編輯器的頁面和簡單,最重要的設定就在當前的 For Loop 頁中,它有三個屬性需要設定
    • InitExpression: 初始值運算式,用來對迴圈變數的賦予一個初始值,這個迴圈變數可以是Package 層級的變數,也可以是 Container 層級的變數,在這個運算式裡我輸入 @LoopValue = 1
    • EvalExpression:
      判斷運算式,它接受一個條件判斷運算式,當不滿足這個條件運算式的時候終止當前的迴圈;當滿足條件的時候,執行下面的
      AssignExpression 的操作,一直到不滿足這個運算式為止。在這個運算式裡輸入:@LoopValue <=@EndValue
    • AssignExpression: 賦值運算式,它用來對迴圈變數賦值,在這個表達是裡輸入:@LoopValue = @LoopValue + 1。值得注意是這個運算式的設定一定要影響 EvalExpression 的值,否則的話就會形成一個無休止的迴圈。
  • 在這個 For Loop Container 中加入一個 Execute SQL Task, 雙擊這個 Execute SQL Task 來編輯它的屬性
    • 使用OLE DB 串連
    • 選擇(建立)到 Clients 表所在資料庫的串連
    • 在 SQL Statement 中輸入:
    • INSERT INTO dbo.Clients (ClientName) Values (‘Name’ + Convert (Varchar,?))

    • 在Parameter Mapping 中建立一個新的變數映射,在 Varible name 下選擇 User:: LoopValue, Parametername 修改為 0,資料類型修改為 LONG
  • 儲存這個 SSIS Package 並運行它。
  • 在 SQL Server Management Studio 中查看Clients 表的內容,有10個記錄增加了。

結論

在我們這個例子中最主要的部分是設定3個迴圈的運算式,在一些個複雜的處理中,可能這些運算式的值是動態改變的,比如 EvelExpression 也就是迴圈終止的變數可以不是固定的值,等等。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.