開發環境已設計完成並測試通過的 DTS 套件,需遷移至生產環境並排程執行。核心挑戰:來源/目的伺服器、帳號、密碼等連線資訊在環境間不同。
dtsrun
[/?] |
[ /S server[\instance] { /U user /P pass | /E } ]
{ /N package_name | /G package_guid | /V version_guid }
[ /M package_password ]
[ /F structured_storage_file ]
[ /R repository_db ]
[ /A global_var_name:type_id=value ] -- 關鍵:傳遞參數
[ /L log_file ]
[ /W event_log_status ]
[ /Z ] [ /!X ] [ /!D ] [ /!Y ] [ /!C ]
SrcServer、SrcUser、SrcPwd、DestServer、DestUser、DestPwd。.dts) 或發布至 msdb/Repository。.bat 或 Agent 作業步驟,呼叫 dtsrun 並以 /A 傳遞實際連線參數:dtsrun /S ProdSQL /E /N "MyPackage" ^
/A "SrcServer":8="ProdSource" ^
/A "SrcUser":8="etl_user" ^
/A "SrcPwd":8="P@ssw0rd" ^
/A "DestServer":8="ProdDW" ^
/A "DestUser":8="dw_user" ^
/A "DestPwd":8="P@ssw0rd" ^
/L "C:\Logs\MyPackage.log"
:8 表示 VT_BSTR (字串) 型別 ID。
使用 /!Y 選項產生加密後的完整命令列字串,部署時僅使用加密字串,避免明文密碼出現在批次檔或作業步驟中。
範例:dtsrun /!Y /S ... /A "SrcPwd":8="secret" ... → 輸出加密字串,實際執行用 dtsrun /!X "encrypted_string"。
dtsrun 成功後,再建立 Agent 排程作業。