实现方式

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

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

例子要求

把一张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(255) NOT NULL,
    ConfiguredValue NVARCHAR(255) NULL,
    PackagePath NVARCHAR(255) NOT NULL,
    ConfiguredValueType NVARCHAR(20) NOT 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>

在运行SSIS包时,如何动态更新变量值相关推荐

  1. 运行SSIS包的几种方式

    很多程序员,不止.net程序员都有可能会用到SSIS包来处理一些数据流程上的任务.可以说SSIS作为BI下的一个ETL工具,方便易学,而且功能也确实很强大.于是开发OLTP的同事总会到我们这边寻求技术 ...

  2. 总结运行SSIS包的几种方式

    很多程序员,不止.net程序员都有可能会用到SSIS包来处理一些数据流程上的任务.可以说SSIS作为BI下的一个ETL工具,方便易学,而且功能也确实很强大.于是开发OLTP的同事总会到我们这边寻求技术 ...

  3. 运行jar包时指定prod时报异常

    1 问题 运行jar包时指定prod时报异常,异常如下: PS D:\Workspace\ZJ\dataPlatform\dataPlatform-api\target> java -jar . ...

  4. 创建SSIS包—循环和动态package

    在上一个随笔中我们处理了一个010305c.dat文件,如果在一个文件夹中有多个dat文件应该怎么办呢? 这里就需要使用Foreach Loop container任务来循环处理文件,这个需要使用多个 ...

  5. 从 xp_cmdshell 中使用 dtexec 运行SSIS包

    从 xp_cmdshell 中使用 dtexec  可以从 xp_cmdshell 提示符下运行 dtexec.以下示例显示如何运行名为 UpsertData.dtsx 的包并忽略返回代码: EXEC ...

  6. 怎样在运行jar包时指定jdk

    正常情况下,运行jar包使用命令是: java -jar xxx.jar 这里默认使用JAVA_HOME环境变量中的jdk. 如果想要指定jdk路径运行jar包,可以使用以下命令: %~dp0\jav ...

  7. java -jar命令运行jar包时指定外部依赖jar包

    大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口.具体的方法是修改jar包内目录META-INF下的MANIFE ...

  8. 关于运行jar包时的一个错误

    花了几天时间学习java,今天制作了一个jar包,遇到一个奇怪的问题,打好的jar包使用命令 java -jar test.jar 可以正确运行,但是双击或是在cmd中运行,提示下面的错误: C:\U ...

  9. django解决使用DateTimeField添加、修改记录时不动态更新时间的问题

    解决方法 定义model时,若想动态显示最后的修改时间,使用: from django.db import models from datetime import datetime models.Da ...

最新文章

  1. win 7 DHCP获取不到ip的解决办法
  2. 最小生成树板子-AcWing 858. Prim算法求最小生成树
  3. 释疑のSmartforms点打印无反应
  4. Linux学习 - 文件包处理命令
  5. Mifare Ultra Light 非接触式IC卡发卡总结
  6. epoll nio区别_大厂面试系列(二)::NIO和Netty
  7. 12 MM配置-主数据-定义物料组
  8. VMware 12安装Mac OS X 10.11解决上网的问题
  9. leslie人口预测模型matlab代码,leslie模型人口预测程序,请求大家!
  10. w3school离线文档分享。
  11. 在阿里云轻量应用服务器上安装爱快软路由
  12. c语言 %x,%d,%c,%s,%x各代表什么
  13. 零知识证明java实现
  14. VMware残留问题
  15. docker容器不阻塞的进入
  16. 固定资产管理系统能给行政和IT人员带来什么?
  17. 【OpenGL ES】立方体贴图(6张图)
  18. 创建视图时--ora-01731:出现循环的视图定义
  19. 从LiveJournal后台发展看大规模网站性能优化方法[zz]
  20. 中职计算机教学方法,浅谈中职计算机学科的教学方法:英语课教学方法有哪些...

热门文章

  1. typechoSQLIte转MySQL_Typecho SQLite与MySQL的数据库切换及解决MySQL连接打开缓慢问题
  2. c语言输出方框□怎么回事_值得收藏的 C语言指针讲解文章,确实不错!
  3. 同济保研计算机,同济大学保研率28%,保研高校前四:复旦、北大、交大、清华...
  4. 对应版本_NET Framework 和对应的 Windows 版本
  5. Vue+Vue Router+Vuex页面演示
  6. 20190917:(leetcode习题)将有序数组转换为二叉搜索树
  7. 两路语音 两路计算机数据综合,两路语音PCM时分复用系统的设计.DOC
  8. vmWare中安装centos7
  9. VB CreateObject函数
  10. shell取得文件行数6法