【问题标题】:Execute SQL Server SSIS Package From Stored Procedure从存储过程执行 SQL Server SSIS 包
【发布时间】:2010-10-29 17:18:22
【问题描述】:

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

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

【问题讨论】:

    标签: sql-server stored-procedures ssis


    【解决方案1】:
    【解决方案2】:

    我建议改用代理:

    1. 为将运行作业的帐户创建代理代理帐户
    2. 创建运行此包的代理作业
    3. 使其使用#1 中创建的代理帐户
    4. 测试作业
    5. 在 SQL 代码中,使用 sp_start_job 启动此作业

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

    【讨论】:

    【解决方案3】:

    自 2012 年以来,MSSQL 有一个 SSIS 目录,您可以在其中将包停放在那里。然后,您可以执行带有参数的包。这样我们就可以避免xp_cmdshell调用dtexec,或者不带参数的sp_start_job。关键 SP:create_executionset_execution_parameter_valuestart_execution

    来自 MSDN:

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

    Deploy and Execute SSIS Packages using Stored Procedures

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2011-11-07
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 2015-08-28
      相关资源
      最近更新 更多