在SQL Server中可以使用dtexec命令運行SSIS包(2005以上版本),當然也可以通過系統過程:xp_cmdshell調用dtexec運行SSIS包。
具體操作步驟如下:
1.首先,當然是要在Business Intelligence中設計好包,並調試通過。
2.然後,有兩種方式可以在SQL Server中使用命令運行SSIS包
第一種是直接執行ssis包文件,命令如: exec xp_cmdshell 'dtexec /f "c:test.dtsx"'
第二種是將包文件發布或者導入到Integration Services服務中,然後再執行。
發布包是在Business Intelligence中生成發布文件,並發布到Integration Services服務中。生成發布文件後,雙擊發布文件,選擇[部署到SQL Server],然後輸入服務器名稱,用戶名,密碼,並選擇包路徑為"/",並選擇[依靠服務器存儲進行加密],點擊[下一步],選擇要安裝到的位置即可。
導入包是在Managemenet Studio,選擇接Integration Services服務,選擇"已存儲的包"-"MSDB",右鍵導入包,選擇文件系統,指定要導入的包,保護級別要選擇[依靠服務器存儲和角色進行訪問控制].
發布包和導入包的作用和目的是一致的,都為為了將包放入到Integration Services服務中。
包發布或者導入後,就可以使用如下命令進行調用了:
exec xp_cmdshell 'dtexec /DTS "MSDBtest" /SERVER "servername" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING V '
注意點:
1.以上操作中用到的系統過程xp_cmdshell默認是禁用的,要想使用,必須先開啟
2.發布包或者導入包時,必須選擇正確的保護級別,發布包時選擇[依靠服務器存儲進行加密],導入包時選擇[依靠服務器存儲和角色進行訪問控制],否則會出現錯誤:[ 說明: 無法解密受保護的 XML 節點"DTS:Password",錯誤為 0x8009000B"該項不適於在指定狀態下使用。".可能您無權訪問此信息。當發生加密錯誤時會出現此錯誤。請確保提供正確的密鑰。]