【发布时间】:2010-05-22 15:13:32
【问题描述】:
我有一个 SSIS 包,计划部署在我的 SQL Server 2008 机器上。
我需要从 .NET 远程同步调用此 SSIS 包。显然我也需要将参数传递给这个包。
我该怎么做?
谢谢, 亚历克斯
【问题讨论】:
标签: sql-server ssis
我有一个 SSIS 包,计划部署在我的 SQL Server 2008 机器上。
我需要从 .NET 远程同步调用此 SSIS 包。显然我也需要将参数传递给这个包。
我该怎么做?
谢谢, 亚历克斯
【问题讨论】:
标签: sql-server ssis
您可以创建一个作业,然后使用 sp_start_job 从直接 SQL 启动该作业。这将是异步的。
在服务器上运行,它需要访问您可能正在读入或写出的任何文件(它还需要有包 - 所以如果您从模板或其他东西代码生成包,把它放到服务器上可能是个问题)。
您还可以使用psexec 在任何远程服务器上运行进程。在这种情况下,它将运行dtexec。这将绕过必须启用 xp_cmdshell。 (同样的问题需要查看包并查看任何文件)
【讨论】:
如果您的 SQL 服务器处于安全环境中,您可以尝试使 SSIS 包可从 Stred 过程运行,那么我认为您的代码可以轻松调用 SQL 服务器上的存储过程。
考虑到您必须启用 xp_cmdshell(至少我知道 SQL2005),根据服务器安全性,这总是被称为危险任务。
【讨论】:
另一种方法是编写简单的应用程序,公开一个允许执行包的 Web 服务 - SQL 联机丛书有一个很好的示例。
【讨论】: