上期回顧:
首先我們來看看包裡面的變量

SSIS包變量分為兩種,一種是系統的内置變量,是一個SSIS包初使化都會自帶的,一種是使用者自己定義的變量。
在SSIS包中,常用的變量的類型包含以下:Int32,String,Boolean,DateTime,Object......
二,讓我們來看看包裡面的限制(線)
如圖中所示的線就是限制,官方的解釋是這樣的:優先限制在控制流中連結包中的可執行檔案、容器和任務,并指定決定可執行檔案是否運作的條件。在圖中的表達就是,當“得到變量值”這一步執行成功後,并且滿足優先限制中的條件的時候,才會執行”插入表變量“這一步。
先上一份官方的關于限制的解釋:
求值運算
指定優先限制使用的求值運算。 運算包括:“限制”、“表達式”、“表達式和限制”和“表達式或限制”。
值
指定限制值:“成功”、“失敗”或“完成”。
注意:
優先限制線的含義:綠色表示“成功”,突出顯示表示“失敗”,藍色表示“完成”。
表達式
如果使用運算“表達式”、“表達式和限制”或“表達式或限制”,則鍵入一個表達式或啟動表達式生成器來建立表達式。 表達式的計算結果必須為布爾值。
測試
驗證表達式。
邏輯與
選擇此選項可以指定:同一個可執行檔案的多個優先限制必須一起計算。 所有限制的計算結果都必須為 True。
注意
這種類型的優先限制顯示為綠色、突出顯示或藍色實線。
邏輯或
選擇此選項可以指定:同一個可執行檔案的多個優先限制必須一起計算。 至少必須有一個限制的計算結果為 True。
這種類型的優先限制顯示為綠色、突出顯示或藍色點線。
結合以上的解釋,我們來做這樣一個package:現有[Report]表一張,當發現Report表資料量大于0時,将Report表的總行數插入到Report曆史表T_ReportHist中。
1)新增加一個變量TotalRowCount存儲Report表的總量
2)建立一個SQL 連結器
3)先建一個SQL任務
拖入到右邊的圖形界面區,輕按兩下打開這個控件的配置界面:
在正常欄下可以做如下的配置:
ConnectionType:選中ADO.NET
Connection:選中我們在連接配接管理器中先添加的DST_BITEST
SqlStatement:在這裡我們要輸入我們要使用的sql語句,我這裡做的是:将Report表的數量存儲到變量TotalRowCount中,是以SQL語句寫入,select count(1) from Report
結果集:單行
在結果集欄目做如下的設定,這樣才可以讓變量TotalRowCount接收到sql語句的結果
4)繼續建立一個sql任務
從左側的控件欄目繼續拉入一個sql任務
在這裡的SQL statement 裡面,我們要明确我要做的是将變量TotalRowCount 和包的PackageName ,在這裡,如果你要将變量輸入,統一都用 “?” 加以代替變量的位置(占位符),語句寫好,接下來就是輸入參數:
這裡需要注意的是,你必須按照相應的變量位置,變量類型,順序添加你所對應的變量.
5)編輯限制,當腳本執行成功并且TotalRowCount>0的時候,執行插入任務!
Ok,整體執行一下看是否成功,檢視T_ReportList資料也存在