2008-10-03 155 views
3

我想遠離這個命令一個bat文件運行DTSX包:如何從bat文件遠程運行DTSX包?

DTEXEC /DTS "\File System\MY_PACKAGE_NAME" /SERVER MY_SERVER_NAME /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING V 

這是工作的罰款在本地,遠程失敗(我有機器上,我指着管理員權限,我有SQL權限)我得到一個超時錯誤(登錄超時過期)。

回答

3

經過一番研究,看起來不可能遠程運行DTEXEC(它需要在本地運行 - 不支持遠程執行)。

爲了克服這種侷限性下面的方法似乎是廣泛實施:

  1. 設置SQL運行作業DTSX包
  2. 建立一個存儲過程運行的作業
  3. 使用isql BAT文件中的命令行(遠程執行)在相關SQL實例上運行存儲過程(使用SQL憑據而不是機器憑據)
1

SSIS還公開了一個web服務器託管服務器上的冰。你可以通過代碼,查詢一臺機器的軟件包,通過數據庫或文件系統運行軟件包,並通過你喜歡的任何編程平臺以編程方式添加/修改軟件包的變量。

這樣說你也可以設置你的web服務來調用你的本地批處理文件,其中包含你的'DETEXEC'命令。

+0

下載免費而強大的工具有趣的選擇 - 感謝 – JohnIdol 2009-01-15 15:02:46

5

這很可能,而且很容易。不需要存儲過程,也不需要SQL代理或Web或.NET開發。我很驚訝微軟從來沒有這樣建議:​​

  1. 在SQL Server上安排一個任務來運行DTSX包。禁用它,所以它不會運行,直到您從遠程PC手動執行它。
  2. 使用該命令的PC執行的任務是:

的schtasks /運行/ TN MyTask [/秒MySQLServer [/ U [域]用戶/ P密碼]] /?

注意:如果你不喜歡暴露的密碼,使用「PSEXEC」命令執行「schtasks的」命令(http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

+0

所以你」重新設置Windows任務來運行DSTEXC,然後遠程運行任務?對我來說這聽起來像個好主意,比我想出的方式更容易:-) +1 – JohnIdol 2009-03-28 15:52:23