Sql server 使用SQL Server代理在服务器上以编程方式运行远程SSIS包

Sql server 使用SQL Server代理在服务器上以编程方式运行远程SSIS包,sql-server,sql-server-2005,ssis,packages,Sql Server,Sql Server 2005,Ssis,Packages,根据该示例,如果要通过“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 SqlConnecti

根据该示例,如果要通过“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包内的变量提供值?

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

编辑

尝试查看哪些方法涵盖了以下所有方法:

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

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

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