如何从bat文件远程运行DTSX包?

时间:2008-10-03 10:27:32

标签: sql-server-2005 ssis

我正尝试使用此命令从bat文件远程运行DTSX包:

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

这在本地工作正常,但远程失败(我在我指向的机器上有管理员权限,我也有SQL权限)我收到超时错误(登录超时已到期)。

3 个答案:

答案 0 :(得分:5)

这很有可能,也很容易。不需要存储过程,也不需要SQL代理,Web或.NET开发。我很惊讶微软从未提出过这样的建议:

  1. 在SQL Server上安排任务以运行DTSX程序包。禁用它,因此只有从远程PC手动执行它才会运行。
  2. 使用以下命令从PC执行任务:
  3.   

    schtasks / run / tn MyTask [/ s MySQLServer [/ u [domain] user / p password]] /?

    注意:如果您不喜欢公开密码,请使用'PSEXEC'命令执行'schtasks'命令(从http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx下载免费且功能强大的工具

答案 1 :(得分:3)

经过一些研究后,看起来无法远程运行DTEXEC(它需要在本地运行 - 不支持远程执行)。

为了克服这个限制,似乎广泛实施了以下方法:

  1. 设置SQL作业以运行DTSX包
  2. 设置存储过程以运行作业
  3. 在BAT文件中使用isql命令行(远程执行)在相关SQL实例上运行存储过程(使用SQL凭据而非机器凭据)

答案 2 :(得分:1)

SSIS还在托管服务器上公开Web服务。您可以通过代码,查询机器的包,通过数据库或文件系统运行包,并通过任何编程平台以编程方式添加/修改包的变量。

话虽如此,您也可以设置您的web服务来调用包含“DETEXEC”命令的本地批处理文件。