Sql-Server
基於傳遞值使用的 SSIS 連接
我有一個 SSIS 包,它從實時和測試環境填充報告倉庫。
目前,隨著源連接在實時和測試之間發生變化,包的每個步驟都重複了。如果需要更改,這將是一個痛苦的維護。
我知道我可以通過代理作業向包發送變數值。
我想知道我是否可以減少包裝以便步驟只出現一次。然後,代理作業可以有兩個執行包的步驟。例如,第一步執行包,變數集是實時數據庫的名稱,第二步再次執行包,但變數集是測試數據庫的名稱。
您可以根據收到的變數動態選擇連接嗎?
有沒有更好的方法?
謝謝
好的,是的,你可以,因為我已經弄清楚了。
在包中創建了一個名為 DB 的變數,數據類型為字元串。
在連接管理器中創建了一個連接,但將數據庫留空。
在連接屬性上選擇“表達式”。在彈出對話框中,從“屬性”下的下拉列表中選擇 InitialCatalog 並輸入 @
$$ User::DB $$作為“表達式”值。 在代理作業中,將“設置值”選項卡上的“屬性路徑”設置為 \Package.Variables
$$ User::DB $$.Value 並將“值”設置為實時數據庫的名稱。 然後創建第二個步驟並複制上面的步驟,但將值設置為測試數據庫名稱。
非常感謝
您希望將環境變數合併到您的 SSIS 包中。設置代理作業以使用不同的環境變數。
您可以在代理作業的每個步驟中設置變數。如果您在項目文件夾中創建多個 SSISDB 環境,它們可以使用或儲存不同的變數來執行您的 SSIS 包。