實現方式:
若要動態更新變數,可以為變數建立配置,將這些配置部署到包中,然後在部署包時更新配置檔案中的變數值。這樣,在執行時,包就可以使用更新後的變數值。
下面通過乙個簡單的例子來說明如何實現動態更新變數值。
例子要求:
把一張order表從遠端計算機例項「triy-2fe792bb5d\sql2008de」 根據需要輸入(order.dbo.name),把資料匯入到本機例項"reri-6ec5991410\sql2008de"
例子實現:
建立乙個簡單的「資料流任務」,具體操作步驟這裡就略過,來看在作用域"package",建立乙個使用者定義的變數"name".資料型別為"string",值為"nr.00002"
在"ole db 源"引用變數:
待ssis包調式ok過,我們接下來就把變數配置部署到包中,在選單"ssis"找到「包配置」:
這裡設定了乙個配置型別為「sql server」的包配置。
[dbo].[ssis configurations]是表名,建立在本機例項"reri-6ec5991410\sql2008de"的「order」所在資料庫中。
create
table
[dbo].
[ssis configurations](
configurationfilter
nvarchar
(255
) not
null
,configuredvalue
nvarchar
(255
) null
,packagepath
nvarchar
(255
) not
null
,configuredvaluetype
nvarchar(20
) not
null
)[dbo].[ssis configurations]中欄位configurationfilter 儲存的是,配置篩選器的值"ordername"
下面就是設定[dbo].[ssis configurations]中configuredvalue對應ssis包變數"name "的value屬性
完成配置,我們就可以在,本機例項"reri-6ec5991410\sql2008de"的「order」所在資料庫中,查到對應的配置資料:
部署ssis包完成後,根據需要修改 [dbo].[ssis configurations]中的配置值"nr.00002",執行ssis包時候,包中變數"name"的值就會動態更新,如現在我們把"nr.00002"變成"nr.00010"
update
dbo.
[ssis configurations
]set
configuredvalue='
nr.00010
'where
configurationfilter='
ordername
'執行包後,我們可以看到包執行進度中,包呼叫上面配置的配置字串「reri-6ec5991410\sql2008de.ssis_db.sa」
這樣就實現了文章開頭的要求部分。
另,在包配置時候,配置型別也可以設定成別的型別,經常用的是xml配置檔案,樣式如下:
xml version="1.0"
?>
- <
dtsconfiguration
>
- <
dtsconfigurationheading
>
<
dtsconfigurationfileinfo
generatedby
="mono\andy"
generatedfrompackagename
="package"
generatedfrompackageid
=""generateddate
="2011-4-16 1:00:24"
/>
dtsconfigurationheading
>
- <
configuration
configuredtype
="property"
path
="\package.variables[user::name].properties[value]"
valuetype
="string"
>
<
configuredvalue
>
nr.00002
configuredvalue
>
configuration
>
dtsconfiguration
>
動態呼叫SSIS包
declare cmd varchar 1000 declare sourceid int set sourceid 2 declare ssispath varchar 1000 set ssispath sql package server txchen bank maxconcurrent 1...
dtexec命令執行SSIS包
預設情況下,同時安裝了 64 位和 32 位版本的 integration services 命令提示實用工具的 64 位計算機將在命令提示符處執行 32 位版本。執行 32 位版本的原因是 在 path 環境變數中,32 位版本的目錄路徑顯示在 64 位版本的目錄路徑之前。通常,32 位目錄路徑是...
SSIS常用的包 執行任務
執行乙個任務將會執行乙個或一系列的 sql語句或儲存過程。在 ssis中還支援執行檔案中的 script。大多數的配置在下圖 圖 3 1 中呈現。停止時間 timeout選項設定任務開始執行到停止的時間。如果設定為 0以為這它將在極短的時間內執行完。圖3 1 resultset選項設定 task的輸...