永发信息网

如何在SSIS中设置表名变量

答案:1  悬赏:50  手机版
解决时间 2021-11-22 12:39
如何在SSIS中设置表名变量
最佳答案
一、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后赋值给另外一个变量。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
陈展的人物介绍
88.62÷x=14(解方程)
2015棉衣绗线新款图型
个人包钢结构安装怎么买保险
怎样更好的评测一个程序员的工作质量
"提供此电子邮件已被拒绝,由于用户的配额限
四缸发动机气门活塞工作顺序
野马和思域跑哪个赢了
鹤壁市淇县高村镇二郎庙土地征不征收了?
相缘旅馆(青岛城阳区)地址在什么地方,我要处
为什么有的钽电容中要无铅的?
tf卡供电是3.3V,那io口是多少伏
倾城SPA会所地址好找么,我有些事要过去,
思科2600系列路由启动正常,但是sh flash没有
100克蜂蜜含有34.5克葡萄糖.照这样计算,多少
推荐资讯
幸福满楼大酒店(青岛城阳区)地址有知道的么?
FIFA16球员属性怎么修改 球员属性修改方法
山西信发化工有限公司好不好?要不要女生?
4位纯字母,域名现在多少钱
护士如果缺少诚实诚信会带来什么什么后果
16年七月份毕业的护士,这17年7月份的护师考
高考中榜,啤酒免费送,还等什么,快来拿吧
大概孕19周的时候去看过电影,会影响宝宝听力
有9只兔子朝左排成一队,有一些被草丛挡住,
温莎结跟半温莎结有什么区别?
你好,你现在怎么样了,和老公还在一起吗,我
不是公司职员,但在公司厂区内发生工伤总么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?