3

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

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

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

4

3 回答 3

5

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

  1. 在 SQL Server 上安排任务以运行 DTSX 包。禁用它,这样它就不会运行,直到您从远程 PC 手动执行它。
  2. 使用以下命令从 PC 执行任务:

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

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

于 2009-03-27T13:39:49.733 回答
3

经过一番研究,似乎无法远程运行 DTEXEC(它需要在本地运行 - 不支持远程执行)。

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

  1. 设置 SQL 作业以运行 DTSX 包
  2. 设置存储过程来运行作业
  3. 在 BAT 文件(远程执行)中使用 isql 命令行在相关 SQL 实例上运行存储过程(使用 SQL 凭据而不是机器凭据)
于 2008-10-04T19:00:09.960 回答
1

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

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

于 2009-01-06T21:58:27.423 回答