基于示例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包中的变量提供值?
答案 0 :(得分:2)
您可以创建一个表来充当队列,在其中插入包含参数的行,然后启动作业。在随后运行的TSQL中,只需选择值并将队列行“C”标记为已完成,或者将其删除并继续运行。
修改强>
尝试查看涵盖以下所有方法的Running SSIS package programmatically:
答案 1 :(得分:0)
我们通过使用配置表或配置文件在运行时动态更改变量值。我们不允许用户运行我们的SSIS包,但我认为您的工作可以首先更新配置文件然后运行包。