题
我正尝试使用此命令从bat文件远程运行DTSX包:
DTEXEC /DTS "\File System\MY_PACKAGE_NAME" /SERVER MY_SERVER_NAME /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING V
这在本地工作正常,但远程失败(我在我指向的机器上有管理员权限,我也有SQL权限)我收到超时错误(登录超时已到期)。
解决方案 2
经过一些研究后,看起来无法远程运行DTEXEC(它需要在本地运行 - 不支持远程执行)。
为了克服这个限制,似乎广泛实施了以下方法:
- 设置SQL作业以运行DTSX包
- 设置存储过程以运行作业
- 在BAT文件中使用isql命令行(远程执行)在相关SQL实例上运行存储过程(使用SQL凭据而非机器凭据) 醇>
其他提示
这很有可能,也很容易。不需要存储过程,也不需要SQL代理,Web或.NET开发。我很惊讶微软从未提出过这样的建议:
- 在SQL Server上安排任务以运行DTSX程序包。禁用它,因此只有从远程PC手动执行它才会运行。
- 使用以下命令从PC执行任务: 醇>
schtasks / run / tn MyTask [/ s MySQLServer [/ u [domain] user / p password]] /?
注意:如果您不喜欢公开密码,请使用'PSEXEC'命令执行'schtasks'命令(从 http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
SSIS还在托管服务器上公开Web服务。您可以通过代码,查询机器的包,通过数据库或文件系统运行包,并通过任何编程平台以编程方式添加/修改包的变量。
话虽如此,您也可以设置您的web服务来调用包含“DETEXEC”命令的本地批处理文件。
不隶属于 StackOverflow