从存储过程执行SQL Server SSIS包

时间:2009-05-28 21:06:08

标签: sql-server stored-procedures ssis

我有一个存储在SQL Server 2005数据库中的SSIS包。我试图从同一服务器上的存储过程执行此包。有没有比exec master..xp_cmdshell'dtexec / SQL ...

更好的方法

我遇到(我认为)xp_cmdshell阻止执行的文件系统权限问题

3 个答案:

答案 0 :(得分:4)

答案 1 :(得分:4)

我建议使用代理:

  1. 为将运行作业的帐户创建代理代理帐户
  2. 创建运行此程序包的代理程序作业
  3. 使其使用在#1
  4. 中创建的代理帐户
  5. 测试工作
  6. 在SQL代码中,使用sp_start_job启动此作业
  7. 缺点是您无法通过这种方式轻松地将参数从SQL传递到包中。

答案 2 :(得分:1)

自2012年以来,MSSQL有一个SSIS目录,您可以在那里停放包。然后,您可以使用参数执行包。这样,我们可以避免$(".select-all").click(function(e) { e.stopPropagation(); // }); 在没有参数的情况下调用xp_cmdshelldtexec。主要SP:sp_start_jobcreate_executionset_execution_parameter_value

来自MSDN:

To run a package on the server using SQL Server Management Studio

Deploy and Execute SSIS Packages using Stored Procedures