【问题标题】:Best approach to create application to modify SSIS variables and start SSIS package创建应用程序以修改 SSIS 变量并启动 SSIS 包的最佳方法
【发布时间】:2011-08-23 18:59:06
【问题描述】:

我的 DBA 有几个 SSIS 包,他希望这些包能够为最终用户提供一种在包中输入变量值的方法。创建一个接受用户输入并将数据传递给 SSIS 包变量的应用程序的最佳解决方案是什么?

我查看了 http://blogs.msdn.com/b/michen/archive/2007/03/22/running-ssis-package-programmatically.aspx ,我什至与这里的一些信息非常接近 - http://msdn.microsoft.com/en-us/library/ms403355(v=sql.100).aspx#Y1913

我可以使用此代码在本地完成这项工作

    Dim packageName As String
    Dim myPackage As Package
    Dim integrationServices As New Application

    If integrationServices.ExistsOnSqlServer(packageName, ".", String.Empty, String.Empty) Then
        myPackage = integrationServices.LoadFromSqlServer( _
          packageName, "local", String.Empty, String.Empty, Nothing)
    Else
        Throw New ApplicationException( _
          "Invalid package name or location: " & packagePath)
    End If

    myPackage.Variables.Item("Beg_Date").Value = startDate
    myPackage.Variables.Item("End_Date").Value = endDate
    myPackage.Execute()

问题是这需要用户在本地安装 SSIS。

【问题讨论】:

    标签: sql-server vb.net ssis


    【解决方案1】:

    您可以使用变量作为配置并在运行时传递它们。我们使用调用子包(具有变量)的父包来执行此操作,但我相信也可以通过这种方式直接在对包(您可以动态创建)的调用中发送它们。

    您可以将变量存储在配置表中,并让用户通过 t-sql 更新配置表,然后也调用包。这只有在每个用户都有不同的父包或者用户无法同时运行以避免竞争条件时才有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多