2008-10-03 187 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