2010-05-20 94 views
2

我有一个SSIS包,我计划在我的SQL Server 2008机器上部署。从.NET部署和调用SSIS包

我需要从.NET远程同步调用此SSIS包。显然我需要将参数传递给这个包。

我该怎么做?

谢谢, 亚历克斯

回答

0

如果你的SQL服务器是在安全的环境你可以试着让SSIS包从Stred程序运行的,那么我认为这是你的代码可以方便调用存储在SQL服务器上的程序。

这考虑到您必须启用xp_cmdshell(至少就我所知的SQL2005而言),根据服务器安全性,这总是被视为危险的任务。

3

您可以创建一个工作,然后使用sp_start_job从直接SQL开始工作。这将是异步的。

在服务器上运行时,它需要有权访问您可能正在读入或写出的任何文件(它也需要有包 - 所以如果您是从模板或其他代码生成包) ,把它放到服务器上可能是个问题)。

您还可以使用psexec在任何远程服务器上运行进程。在这种情况下,它将运行dtexec。这将避免必须启用xp_cmdshell。 (同样的问题需要看包和看到任何文件)

+0

这与我在面对此任务时所使用的类似。我还必须编写一个路由来轮询作业是否仍在运行 - 使其同步 - 它最终是一个简单的存储过程。 我尝试了两种方法sp_start_job和psexec(以及带schtask命令的windows任务调度程序),它们都根据您的特定场景,需求和基础结构工作 – 2010-06-14 10:35:16

+0

http://stackoverflow.com/questions/273751/how-to -execute-AN-SSIS-包从网/ 26012658#26012658 – Faiz 2014-09-24 08:57:47

0

另一种方法是编写简单的应用程序公开允许执行包的Web服务 - SQL Books Online有一个很好的示例。