• 在运行SSIS包时,如何动态更新变量值


    实现方式

            若要动态更新变量,可以为变量创建配置,将这些配置部署到包中,然后在部署包时更新配置文件中的变量值。这样,在运行时,包就可以使用更新后的变量值。

            下面通过一个简单的例子来说明如何实现动态更新变量值。

    例子要求

            把一张Order表从远程计算机实例“TRIY-2FE792BB5D\SQL2008DE” 根据需要输入(Order.dbo.Name),把数据导入到本机实例"RERI-6EC5991410\SQL2008DE"

    例子实现

          创建一个简单的“数据流任务”,具体操作步骤这里就略过,来看在作用域"Package",创建一个用户定义的变量"Name".数据类型为"String",值为"Nr.00002"

     

     在"OLE DB 源"引用变量:

     

    待SSIS包调式OK过,我们接下来就把变量配置部署到包中,在菜单"SSIS"找到“包配置”:

     这里设置了一个配置类型为“SQL Server”的包配置。

     

     [dbo].[SSIS Configurations]是表名,创建在本机实例"RERI-6EC5991410\SQL2008DE"的“Order”所在数据库中。

    CREATE TABLE [dbo].[SSIS Configurations]
    (
        ConfigurationFilter 
    NVARCHAR(255NOT NULL,
        ConfiguredValue 
    NVARCHAR(255NULL,
        PackagePath 
    NVARCHAR(255NOT NULL,
        ConfiguredValueType 
    NVARCHAR(20NOT NULL
    )

     [dbo].[SSIS Configurations]中字段ConfigurationFilter 存储的是,配置筛选器的值"OrderName"

    下面就是设置[dbo].[SSIS Configurations]中ConfiguredValue对应SSIS包变量"Name "的value属性

     

    完成配置,我们就可以在,本机实例"RERI-6EC5991410\SQL2008DE"的“Order”所在数据库中,查到对应的配置数据:

     

     部署SSIS包完成后,根据需要修改 [dbo].[SSIS Configurations]中的配置值"Nr.00002",执行SSIS包时候,包中变量"Name"的值就会动态更新,如现在我们把"Nr.00002"变成"Nr.00010"


    Update dbo.[SSIS Configurations]
        
    Set ConfiguredValue='Nr.00010'
        
    Where ConfigurationFilter='OrderName'

     

    执行包后,我们可以看到包执行进度中,包调用上面配置的配置字符串“RERI-6EC5991410\SQL2008DE.SSIS_DB.sa”

     

     这样就实现了文章开头的要求部分。

     另,在包配置时候,配置类型也可以设置成别的类型,经常用的是XML配置文件,样式如下:

      <?xml version="1.0" ?> 
    <DTSConfiguration>
    <DTSConfigurationHeading>
      
    <DTSConfigurationFileInfo GeneratedBy="MONO\Andy" GeneratedFromPackageName="Package" GeneratedFromPackageID="{36280B53-9CF8-4681-A546-12C05A82957B}" GeneratedDate="2011-4-16 1:00:24" /> 
      
    </DTSConfigurationHeading>
    <Configuration ConfiguredType="Property" Path="\Package.Variables[User::Name].Properties[Value]" ValueType="String">
      
    <ConfiguredValue>Nr.00002</ConfiguredValue> 
      
    </Configuration>
      
    </DTSConfiguration>

     


  • 相关阅读:
    作为【开发人员】如何持续提升自己的开发技能
    永远不要放弃做梦的权利---与所有程序员们共勉
    十种更好的表达“你的代码写的很烂”的方法---总有些人的代码让人难以忍受
    程序员技术练级攻略--练成这样,成神仙了!
    创业其实是个逻辑问题![想不想创业都来看看]
    多图震撼!数字的未来,2013报告
    记最难忘的一件事 等笑话一箩筐
    HDU4666 Hyperspace(曼哈顿)
    POJ3436 ACM Computer Factory(最大流)
    再思考
  • 原文地址:https://www.cnblogs.com/wghao/p/2017679.html
Copyright © 2020-2023  润新知