SSIS從理論到實戰,再到應用(3)----SSIS包的變量,約束,常用容器


上期回顧:

SSIS從理論到實戰,再到應用(2)----SSIS包的控制流

 

首先我們來看看包里面的變量

  

   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數據也存在

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM