【问题标题】:Using SQL Server Agent to Run a Remote SSIS Package Programmatically on the Server使用 SQL Server 代理在服务器上以编程方式运行远程 SSIS 包
【发布时间】:2009-09-14 19:14:36
【问题描述】:

基于示例here from MSDN,如果通过“sp_start_job”过程调用包,如何提供 SSIS 包级变量?

这是来自 MSDN 的示例代码:

Dim jobConnection As SqlConnection
Dim jobCommand As SqlCommand
Dim jobReturnValue As SqlParameter
Dim jobParameter As SqlParameter
Dim jobResult As Integer

jobConnection = New SqlConnection("Data Source=(local);Initial Catalog=msdb;Integrated Security=SSPI")
jobCommand = New SqlCommand("sp_start_job", jobConnection)
jobCommand.CommandType = CommandType.StoredProcedure

jobReturnValue = New SqlParameter("@RETURN_VALUE", SqlDbType.Int)
jobReturnValue.Direction = ParameterDirection.ReturnValue
jobCommand.Parameters.Add(jobReturnValue)

jobParameter = New SqlParameter("@job_name", SqlDbType.VarChar)
jobParameter.Direction = ParameterDirection.Input
jobCommand.Parameters.Add(jobParameter)
jobParameter.Value = "RunSSISPackage"

jobConnection.Open()
jobCommand.ExecuteNonQuery()
jobResult = DirectCast(jobCommand.Parameters("@RETURN_VALUE").Value, Integer)
jobConnection.Close()

Select Case jobResult
  Case 0
    Console.WriteLine("SQL Server Agent job, RunSISSPackage, started successfully.")
  Case Else
    Console.WriteLine("SQL Server Agent job, RunSISSPackage, failed to start.")
End Select
Console.Read()

如何为名为“RunSSISPackage”的 SSIS 包中的变量提供值?

【问题讨论】:

    标签: sql-server sql-server-2005 ssis packages


    【解决方案1】:

    您可以创建一个表来充当队列,在其中插入包含参数的行,然后开始作业。在随后运行的 TSQL 中,只需选择值并将队列行标记为“C”已完成,或者直接将其删除即可。

    编辑

    尝试查看Running SSIS package programmatically,它涵盖了以下所有方法:

    • 使用 SSIS 对象模型以编程方式运行包
    • 启动 DTEXEC.EXE 进程。 DTEXEC 是用于执行 SSIS 包的命令行实用程序
    • 使用 SQL 代理。您可以配置一个代理作业来运行您的包
    • 使用其他实用程序为您启动 DTEXEC
    • 创建将运行包的自定义应用程序

    【讨论】:

    • 我的包使用动态连接字符串。如何通过表查询在我的包中设置这些值?
    • 所以你的参数之一是连接信息?
    • 是的,所有参数都是动态访问目标文件的连接信息。用户可以选择任何文件夹将此数据传输到。为了让我的 SSIS 包理解这一点,它需要提供这些参数。有什么想法吗?
    【解决方案2】:

    我们通过使用配置表或配置文件在运行时动态更改变量值。我们不允许用户运行我们的 SSIS 包,但我想你的工作可能有一个步骤,首先更新配置文件,然后运行包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-17
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 2023-01-14
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      相关资源
      最近更新 更多