我有一个我计划在SQL Server 2008计算机上部署的SSIS包。
我需要从.NET远程和同步调用此SSIS包。显然我也需要将参数传递给这个包。
我怎么能这样做?
谢谢, 亚历
答案 0 :(得分:3)
您可以创建一个作业,然后使用sp_start_job从直接SQL启动作业。这将是异步的。
在服务器上运行时,它需要能够访问您可能正在读取或写出的任何文件(它还需要包含 - 所以如果您是从模板或其他代码生成包的代码,将它放到服务器上可能是个问题。)
您还可以使用psexec在任何远程服务器上运行进程。在这种情况下,它将运行dtexec。这将不得不启用xp_cmdshell。 (需要查看包并查看任何文件的相同问题)
答案 1 :(得分:0)
如果您的SQL服务器处于安全环境中您可以尝试从Stred Procedure运行使SSIS包可运行,那么我认为您的代码可以轻松地在SQL服务器上调用存储过程。
考虑到你必须启用xp_cmdshell(至少就我所知的SQL2005而言),根据服务器安全性,它总是被称为危险任务。
答案 2 :(得分:0)
另一种方法是编写简单的应用程序,公开允许执行包的Web服务 - SQL Books Online有一个很好的样本。