赵丽红的空间

我们一直在努力....

ssis包变量的使用(二)

标签: ssis 变量 参数 SQL组件

上一篇文章"ssis包变量的使用(一)" 也是讲了关于siss包变量的使用,本篇文章更加深入的介绍了ssis包变量的使用.

SSIS(SQL Server Integration Services,SQL Server整合服务)变量分为两种,一种是系统变量,一种用户定义的变量。系统变量包含有关包、容器、任务或事件处理程序的非常有用的信息。现在我们重点说一下用户自定义变量的使用。

1.作用范围:

变量一般情况下都会有作用分为的,ssis变量也不例外,根据作用范围分类,变量分为包变量和组件变量。包变量在包任何一个组件中都可以调用,组件变量只能够在声明变量的组件中有效。在变量的窗口中可以看到变量的作用域。此处要注意的是,定义包变量之前应确认鼠标没有选中某个组件,否则定义的变量的作用域就会变成所选的组件,该变量也就变成了组件变量了。

2.变量的声明、赋值、使用

关于变量的声明,在之前的文章中已经讲过,此处就不再罗嗦了。声明变量之后,就要给变量赋值了。在实际的开发中,除了在变量声明的时候给变量赋值外,还有两种方式给变量赋值,一种是通过执行SQL任务组件返回值的方式给变量赋值,一种是通过脚本组件来给变量赋值。

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

通过脚本组件给变量赋值的方法本人还没用过,以后用了再说道说道:)

给变量赋值之后,那就该考虑怎样使用变量了。使用变量同样有两种途径:执行SQL组件和执行脚本组件。在这里还是只说一下执行SQL组件使用变量的方法吧。

假设定义了一个字符型变量@dept,用户需要通过从某个表中选择部门=@dept的数据,这个时候需要将@dept作为参数传给执行SQL任务组件。在执行SQL任务组件输入SQL的地方输入命令语句:select * from t_table where dept=?

然后再参数数据映射界面新增映射,在变量名称列选择用户变量@dept,选择类型为字符型,在参数名称列输入给参数取得名字。这样就可以将@dept变量传给SQL任务组件的SQL语句了。另外应注意的是,该SQL任务组件的数据库连接一定要定义为ADO类型的,方可接收参数,OLEDB是没法接收参数的。


    评分: 请先登录再投票,同一篇博客一月只能投票一次!
    无人投票

相关博客:


评论


发表评论

关注此文的人们还关注