首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 使用 dtexec 呼叫 SSIS 套件完整教學

     編輯:關於SqlServer

    前言

    SQL Server 2005 及以上版本可透過 dtexec 命令列工具執行 SSIS 套件,並結合 xp_cmdshell 在 T-SQL 中排程或即時觸發。本文詳細說明兩種部署模式、安全性設定與常見錯誤排除。

    前置準備

    1. 在 Visual Studio (SSDT/BIDS) 完成套件開發並通過除錯。
    2. 確認目標伺服器已安裝 Integration Services 服務。

    兩種執行模式

    模式一:直接執行 .dtsx 檔案

    適合快速測試或不需集中管理的情境。

    EXEC xp_cmdshell 'dtexec /f "C:\Packages\MyPackage.dtsx"';
    • /f:指定檔案系統路徑。
    • 路徑含空白時需雙引號包裹,並在 T-SQL 字串中轉義。

    模式二:部署至 SSIS 目錄 (MSDB) 再執行

    適合生產環境,支援版本控管、參數化、日誌集中。

    步驟 1:發布套件

    1. SSDT 專案右鍵 → 部署 → 產生 .ispac 或舊版 .ssisDeploymentManifest。
    2. 雙擊部署資訊清單 → 選擇 部署到 SQL Server → 輸入伺服器、驗證方式、封裝路徑 /。
    3. 保護層級選 依靠伺服器儲存進行加密 (Rely on server storage for encryption)。

    步驟 2:或使用 SSMS 匯入

    1. SSMS 連線 Integration Services → 已儲存的封裝 → MSDB → 右鍵 匯入封裝。
    2. 來源選 檔案系統,保護層級選 依靠伺服器儲存和角色進行存取控制。

    步驟 3:呼叫已部署套件

    EXEC xp_cmdshell 'dtexec /DTS "\MyPackage" /SERVER "MyServer" /MAXCONCURRENT "-1" /CHECKPOINTING OFF /REPORTING V';
    • /DTS:MSDB 內邏輯路徑。
    • /SERVER:目標 SSIS 服務名稱。
    • /MAXCONCURRENT -1:不限制並行數。

    關鍵安全性設定

    啟用 xp_cmdshell

    EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
    EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;
    風險提示:僅授予必要登入權限,並考慮使用 Proxy Account 限制執行身分。

    保護層級對照表

    部署方式建議保護層級錯誤代碼若設錯
    發布精靈依靠伺服器儲存進行加密0x8009000B「無法解密受保護的 XML 節點」
    SSMS 匯入依靠伺服器儲存和角色進行存取控制同上

    常見問題排除

    • 找不到 dtexec:確認 C:\Program Files\Microsoft SQL Server\<版本>\DTS\Binn\ 在系統 PATH 中。
    • 權限不足:SQL Server 服務帳戶需具備套件檔案/資料夾讀取權限。
    • 參數化失敗:使用 /SET \Package.Variables[User::VarName];Value 傳遞執行時參數。

    結語

    掌握 dtexec 與部署模式,即可將 SSIS 整合進 T-SQL 排程、Agent 作業或應用程式觸發流程。建議生產環境統一採用 MSDB 部署模式,搭配 SSISDB 目錄 (SQL 2012+) 獲得完整版本與日誌管理。

    1. 上一篇文章:
    2. 下一篇文章:
    Copyright © 程式碼之家 All Rights Reserved