SQL Server 2005 及以上版本可透過 dtexec 命令列工具執行 SSIS 套件,並結合 xp_cmdshell 在 T-SQL 中排程或即時觸發。本文詳細說明兩種部署模式、安全性設定與常見錯誤排除。
適合快速測試或不需集中管理的情境。
EXEC xp_cmdshell 'dtexec /f "C:\Packages\MyPackage.dtsx"';
/f:指定檔案系統路徑。適合生產環境,支援版本控管、參數化、日誌集中。
.ispac 或舊版 .ssisDeploymentManifest。/。EXEC xp_cmdshell 'dtexec /DTS "\MyPackage" /SERVER "MyServer" /MAXCONCURRENT "-1" /CHECKPOINTING OFF /REPORTING V';
/DTS:MSDB 內邏輯路徑。/SERVER:目標 SSIS 服務名稱。/MAXCONCURRENT -1:不限制並行數。EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;
風險提示:僅授予必要登入權限,並考慮使用 Proxy Account 限制執行身分。
| 部署方式 | 建議保護層級 | 錯誤代碼若設錯 |
|---|---|---|
| 發布精靈 | 依靠伺服器儲存進行加密 | 0x8009000B「無法解密受保護的 XML 節點」 |
| SSMS 匯入 | 依靠伺服器儲存和角色進行存取控制 | 同上 |
C:\Program Files\Microsoft SQL Server\<版本>\DTS\Binn\ 在系統 PATH 中。/SET \Package.Variables[User::VarName];Value 傳遞執行時參數。掌握 dtexec 與部署模式,即可將 SSIS 整合進 T-SQL 排程、Agent 作業或應用程式觸發流程。建議生產環境統一採用 MSDB 部署模式,搭配 SSISDB 目錄 (SQL 2012+) 獲得完整版本與日誌管理。