Sql server 从存储过程执行SQL Server SSIS包

Sql server 从存储过程执行SQL Server SSIS包,sql-server,stored-procedures,ssis,Sql Server,Stored Procedures,Ssis,我有一个存储在SQLServer2005DB中的SSIS包。我试图从同一服务器上的存储过程执行此包。有没有比exec master..xp\u cmdshell的dtexec/SQL更好的方法 我在xp_cmdshell中遇到了(我认为)文件系统权限问题,这妨碍了执行我不这么认为,这里有两篇好文章: 我建议改用代理: 为将运行作业的帐户创建代理代理代理帐户 创建运行此包的代理作业 使用在#1中创建的代理帐户 测试工作 在SQL代码中,使用sp_start_job启动此作业 缺点是您无法通过这种

我有一个存储在SQLServer2005DB中的SSIS包。我试图从同一服务器上的存储过程执行此包。有没有比exec master..xp\u cmdshell的dtexec/SQL更好的方法


我在xp_cmdshell中遇到了(我认为)文件系统权限问题,这妨碍了执行

我不这么认为,这里有两篇好文章:


我建议改用代理:

  • 为将运行作业的帐户创建代理代理代理帐户
  • 创建运行此包的代理作业
  • 使用在#1中创建的代理帐户
  • 测试工作
  • 在SQL代码中,使用
    sp_start_job
    启动此作业

  • 缺点是您无法通过这种方式轻松地将参数从SQL传递到包。

    自2012年以来,MSSQL有一个SSIS目录,您可以将包存放在那里。然后,您可以使用参数执行一个包。这样,我们可以避免
    xp\u cmdshell
    调用
    dtexec
    ,或
    sp\u start\u job
    而不使用参数。按键SPs:
    创建执行
    设置执行参数值
    ,以及
    开始执行

    从MSDN:


    我最近根据这一想法为任何需要举例说明的人提出了一个详细的解决方案