Sql-Server

基於傳遞值使用的 SSIS 連接

  • May 13, 2019

我有一個 SSIS 包,它從實時和測試環境填充報告倉庫。

目前,隨著源連接在實時和測試之間發生變化,包的每個步驟都重複了。如果需要更改,這將是一個痛苦的維護。

我知道我可以通過代理作業向包發送變數值。

我想知道我是否可以減少包裝以便步驟只出現一次。然後,代理作業可以有兩個執行包的步驟。例如,第一步執行包,變數集是實時數據庫的名稱,第二步再次執行包,但變數集是測試數據庫的名稱。

您可以根據收到的變數動態選擇連接嗎?

有沒有更好的方法?

謝謝

好的,是的,你可以,因為我已經弄清楚了。

在包中創建了一個名為 DB 的變數,數據類型為字元串。

在連接管理器中創建了一個連接,但將數據庫留空。

在連接屬性上選擇“表達式”。在彈出對話框中,從“屬性”下的下拉列表中選擇 InitialCatalog 並輸入 @

$$ User::DB $$作為“表達式”值。 在代理作業中,將“設置值”選項卡上的“屬性路徑”設置為 \Package.Variables

$$ User::DB $$.Value 並將“值”設置為實時數據庫的名稱。 然後創建第二個步驟並複制上面的步驟,但將值設置為測試數據庫名稱。

非常感謝

您希望將環境變數合併到您的 SSIS 包中。設置代理作業以使用不同的環境變數。

您可以在代理作業的每個步驟中設置變數。如果您在項目文件夾中創建多個 SSISDB 環境,它們可以使用或儲存不同的變數來執行您的 SSIS 包。

參考: https ://www.mssqltips.com/sqlservertip/4810/setup-environment-variables-in-sql-server-integration-services/

引用自:https://dba.stackexchange.com/questions/238009