问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在SSIS的脚本组件中访问变量

发布网友 发布时间:2023-03-23 21:56

我来回答

1个回答

热心网友 时间:2023-10-15 17:21

一、SSIS变量简介

SSIS(SQL Server Integration Services,SQL Server整合服务)变量分分为两种,一种是系统变量,一种用户定义的变量。系统变量包括有关包、容器、任务或事件处理程序的非常有用的信息。例如,在运行时,MachineName系统变量包含运行包含的计算机的名称,StartTime变量包开始运行的时间。系统变量是只读的。在SSIS中,用户变量是用户在开发的过程中根据需要申明的变量。用户变量可以使用在脚本中,在由优先约束、For循环容器、派生列转换和条件性拆分转换使用的表达式中,以及在更新属性值的属性表达式中。

在各种编程语言中申明的变量一般情况下都会有作用范围的,SSIS变量也不例外,SSIS变量也是有作用范围的。根据作用范围分类,变量分为包变量和组件变量。包变量在包任何一个组件中都可以调用,组件变量只能够在声明变量的组件中有效。在变量的窗口中可以看到变量的作用域。

可以看到i变量的作用域是整个Package1包,而myconfig变量作用域是数据流任务组件。

二、SSIS用户变量的声明、赋值、使用

1、申明变量

申明变量是非常简单、如果你要申明包变量,只要单击控制流选项卡,然后在包开发区域空白处单击右键选择变量命令,或者新建变量按钮就新建一个变量,输入名称,选择数据类型,赋初值就完成了。

如果要声明某数据流任务组件使用的变量,只要双击该数据流任务组件,在流控制控制选项卡空白的地方单击右键选择变量命名,在变量窗口中新建一个变量命令,在变量窗口中新建一个变量,这时变量的作用域就是你选择的流任务组件。

2、赋值

在实际开发中,除了在变量声明的时候给变量赋值外,还有两种方式,一种是通过执行SQL任务组件返回值的方式给变量赋值,一种是通过脚本组件来给变量赋值。

在执行SQL任务组件方法是先设置好组件的数据库连接属性,然后输入从数据库取数据的SQL语句,设置组件返回的结果集为单行。在结果集界面中单击“新建”,在结果集那一列输入你刚才SQL返回列的名称,在变量名称列选择你要赋值的变量

图中红色方框中的SQL语句非常简单,返回单行,结果是1。在图4中,将返回的result列的一行赋值给用户变量i。

利用脚本组件赋值变量比较简单,只需要设置脚本组件的ReadOnlyvariable或者ReadWriteVariable,将变量的名称设置他们的值(多个变量以逗号分割),它们的区别是前者在脚本组件只能够读,或者可以读写。然后在脚本组件中通过

Dts.Varables("变量名称").Value=值

3、变量的使用

变量在ssis中使用的地方很多,笔者介绍两个典型的应用。

(1) 执行 SQL 任务组件的参数

假定申明了一个日期类型变量StartDate,用户需要通过从某个表中选择在StartDate日期之前的数据,这个时候需要将StartDate作为参数传给执行 SQL 任务组件。在执行 SQL 任务组件输入SQL的地方输入如下命令语句:

SELECT * FROM TABLE_a WHERE 日期字段 < ?

然后在参数据映射界面新增映射,在变量名称列选择用户变量StartDate,选择类型为DATE,在参数名称列输入给参数取的名称。这样就可以将StartDate变量传给SQL任务组件的SQL语句了。

(2) 在脚本组件中赋值

可以在脚本组件中通过Dts.Variables("i").Value = 1方式赋值给变量,也可以通过这种方式来使用变量。比如Dts.Variables("other_variable").Value = Dts.Variables("i").Value+1,这个语句是可以在脚本组件中执行的,将i变量加1后赋值给另外一个变量。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么鉴别匡威真假鉴别鉴别匡威真假的方法与技巧 洛阳小碗汤怎么做 酥肉丸子汤如何烹饪简单而又不失美味? 直通车产出比多少不亏?产出比低怎么调整? 淘宝直通车投产比多少才是盈利?怎么提升? 车打不着拧钥匙没反应 车打火的钥匙拧不动 微信关闭时后台还在图标上还有个小锁什么意思 坦克世界闪击战电脑需求配置玩坦克世界电脑配置要达到什么标准_百度... 坦克世界对电脑配置要求高不高玩坦克世界电脑需要什么配置要求 坦克世界对电脑的配置要求是多少坦克世界配置要求 wlandirect服务要启动吗 WLAN与wifi Direct的区别是什么?网络又是什么意思啊? 我安装了Eclipse、sdk、JRE,但是在Eclipse中运行模拟机时,老是报错,报错内容是内存出错,该怎么解决 有图,My eclipse建一个工程,jre包已导入,但一直有The import java.util.list cannot be resolved错误 使用eclipse制作jar包报错,我是菜鸟,请高手帮忙回复下,谢谢分享! eclipse错误提示jre java-se8-cp2 does not support debug mode. 我设置eclipse JRE结果报出这样的错误,帮忙 电脑开票软件的口令忘了怎么办 急急急 请求帮助 谢谢了 如何卸载天珣软件 电脑杀毒软件密码忌了怎么办? 东芝电脑中的自带软件哪些可以卸载 庭院放的石墩有多重 空心实心的石墩有多重啊 公园石墩子多重 400×400的石墩子多重 方形石墩子多少斤 石礅直径26一般多重 15万公里的大众检修,停车位有一小滩液体,师傅:发动机的通病! 8年跑20万公里的三菱检修,车主:只要转动方向盘,就有咯吱声! 人不能只关心自己。 SSIS OLE DB数据源中用SQL命令访问模式,却设不了参数 怎样将sql server中的一张表,通过ssis(sql server intergration services)根据条件导出成txt格式 产后吃什么能消脂减肥中药偏方,产后肚子怎么能瘦下去 长亭送别正宫端正好 是词还是诗 分析比较&lt;窦娥冤&gt;和&lt;西厢记&gt;里的曲目正宫端正好 猫脸老太太到底是什么? 山东花仁指什么 梦见可怜的俩个小女孩的预兆 梦见可怜小女孩的预兆 梦见一男一女两个小孩子的预兆 胃病不能喝酒吗? 有胃病可以少量饮酒吗 淘宝返利微信公众号哪个最好_淘宝购物返利微信群 应该怎样结束面试谈话? 面试后,如何礼貌地结束面谈呢? 格力空调和美的空调哪个好 美的和格力空调的区别 六安b2科目一模拟考试为什么有20道多选题 七品轩里面只有螃蟹吗 b2科目一考试技巧 我想在石首市区,开一家七欣天香辣蟹火锅店大该必要多少钱才能开这个店