當前位置:編程學習大全網 - 編程語言 - 如何在SSIS中設置表名變量

如何在SSIS中設置表名變量

壹、SSIS變量簡介

SSIS(SQL Server Integration Services,SQL Server整合服務)變量分分為兩種,壹種是系統變量,壹種用戶定義的變量。系統變量包括有關包、容器、任務或事件處理程序的非常有用的信息。例如,在運行時,MachineName系統變量包含運行包含的計算機的名稱,StartTime變量包開始運行的時間。系統變量是只讀的。在SSIS中,用戶變量是用戶在開發的過程中根據需要申明的變量。用戶變量可以使用在腳本中,在由優先約束、For循環容器、派生列轉換和條件性拆分轉換使用的表達式中,以及在更新屬性值的屬性表達式中。

在各種編程語言中申明的變量壹般情況下都會有作用範圍的,SSIS變量也不例外,SSIS變量也是有作用範圍的。根據作用範圍分類,變量分為包變量和組件變量。包變量在包任何壹個組件中都可以調用,組件變量只能夠在聲明變量的組件中有效。在變量的窗口中可以看到變量的作用域。

可以看到i變量的作用域是整個Package1包,而myconfig變量作用域是數據流任務組件。

二、SSIS用戶變量的聲明、賦值、使用

1、申明變量

申明變量是非常簡單、如果妳要申明包變量,只要單擊控制流選項卡,然後在包開發區域空白處單擊右鍵選擇變量命令,或者新建變量按鈕就新建壹個變量,輸入名稱,選擇數據類型,賦初值就完成了。

如果要聲明某數據流任務組件使用的變量,只要雙擊該數據流任務組件,在流控制控制選項卡空白的地方單擊右鍵選擇變量命名,在變量窗口中新建壹個變量命令,在變量窗口中新建壹個變量,這時變量的作用域就是妳選擇的流任務組件。

2、賦值

在實際開發中,除了在變量聲明的時候給變量賦值外,還有兩種方式,壹種是通過執行SQL任務組件返回值的方式給變量賦值,壹種是通過腳本組件來給變量賦值。

在執行SQL任務組件方法是先設置好組件的數據庫連接屬性,然後輸入從數據庫取數據的SQL語句,設置組件返回的結果集為單行。在結果集界面中單擊“新建”,在結果集那壹列輸入妳剛才SQL返回列的名稱,在變量名稱列選擇妳要賦值的變量

圖中紅色方框中的SQL語句非常簡單,返回單行,結果是1。在圖4中,將返回的result列的壹行賦值給用戶變量i。

利用腳本組件賦值變量比較簡單,只需要設置腳本組件的ReadOnlyvariable或者ReadWriteVariable,將變量的名稱設置他們的值(多個變量以逗號分割),它們的區別是前者在腳本組件只能夠讀,或者可以讀寫。然後在腳本組件中通過

Dts.Varables("變量名稱").Value=值

3、變量的使用

變量在ssis中使用的地方很多,筆者介紹兩個典型的應用。

(1) 執行 SQL 任務組件的參數

假定申明了壹個日期類型變量StartDate,用戶需要通過從某個表中選擇在StartDate日期之前的數據,這個時候需要將StartDate作為參數傳給執行 SQL 任務組件。在執行 SQL 任務組件輸入SQL的地方輸入如下命令語句:

SELECT * FROM TABLE_a WHERE 日期字段 < ?

然後在參數據映射界面新增映射,在變量名稱列選擇用戶變量StartDate,選擇類型為DATE,在參數名稱列輸入給參數取的名稱。這樣就可以將StartDate變量傳給SQL任務組件的SQL語句了。

(2) 在腳本組件中賦值

可以在腳本組件中通過Dts.Variables("i").Value = 1方式賦值給變量,也可以通過這種方式來使用變量。比如Dts.Variables("other_variable").Value = Dts.Variables("i").Value+1,這個語句是可以在腳本組件中執行的,將i變量加1後賦值給另外壹個變量。

  • 上一篇:亞運會寧波分會場有哪些項目?
  • 下一篇:集中潤滑系統挖機集中潤滑系統
  • copyright 2024編程學習大全網