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

Sql server 2005 如何从bat文件远程运行DTSX包?,sql-server-2005,ssis,Sql Server 2005,Ssis,我正在尝试使用以下命令从bat文件远程运行DTSX包: DTEXEC /DTS "\File System\MY_PACKAGE_NAME" /SERVER MY_SERVER_NAME /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING V 这在本地运行正常,但在远程运行失败(我在指向的机器上有管理员权限,并且我也有SQL权限)我收到超时错误(登录超时已过期)。经过一番研究后,看起来无法远程运行DTEXEC(它需要在本地运行-不支持远程执

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

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

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

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

为了克服这一限制,似乎广泛采用了以下方法:

  • 设置SQL作业以运行DTSX包
  • 设置存储过程以运行作业
  • 在BAT文件(远程执行)中使用isql命令行在相关SQL实例上运行存储过程(使用SQL凭据而不是计算机凭据)

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


    也就是说,您还可以设置Web服务来调用包含“detexc”命令的本地批处理文件。

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

  • 在SQL Server上计划任务以运行DTSX包。禁用它,以便在您从远程PC手动执行它之前,它不会运行
  • 使用以下命令从PC执行任务:
  • schtasks/run/tn MyTask[/s MySQLServer[/u[域]用户/p密码]]/


    注意:如果您不喜欢公开密码,请使用“PSEXEC”命令执行“schtasks”命令(从

    下载免费且功能强大的工具,这样您就可以设置一个windows任务来运行DSTEXC,然后远程运行该任务?对我来说,这听起来是个好主意,比我想到的要简单得多:-)+1存储过程的好处是,您也可以从远程客户端运行它,这样您就不需要访问物理机器来运行它