SSIS服务中的变量探讨

日期: 2009-06-08 来源:TechTarget中国

  我们在SQL Server 2008 BI的SSIS服务中,经常会用到变量。SSIS的变量分为两种,一种是系统变量,一种用户定义的变量。系统变量包含有关包、容器、任务或事件处理程序的非常有用的信息,系统变量是不能更改的。而当我们在使用For 循环容器、派生列转换和条件性拆分转换的表达式中,就会用到用户变量,用户变量是联系这些组件和表达式的桥梁,通过用户变量,使得ETL过程变得更加灵活和强大。

  1.操作

  在实际操作过程中,我们可以通过以下两种方式打开“变量”窗口,一种是在 SSIS 菜单上,单击“变量”,或者在控制流区域单击右键,选择“变量”。

  在“变量”窗口中,可以通过单击“添加变量”图标来新建变量,通过窗口还可以更新变量的名称、数据类型、值以及命名空间,而且还可以指示在变量值发生更改时是否引发更改事件。如图1所示:

  SSIS服务中的变量探讨(图一)
  
  图1

  在“变量”窗口中,选中某一变量,通过单击“删除变量”图标来删除指定的变量。

  单击“选择变量列”图标,我们可以通过“选择变量列”界面来选择将在“变量”窗口的列中显示的属性,如图2所示;

  SSIS服务中的变量探讨(图二)

  图2

  在变量的属性中包含名称,作用域,数据类型,值,命名空间,变量更改时引发事件,我们可以通过“变量”窗口来设置这些属性。例如,变量的作用域就是指变量在SSIS中的作用范围,一般来说,变量分为包变量和组件变量。包变量在包任何一个组件中都可以调用,组件变量只能够在申明变量的组件中有效。

  在实际开发中,除了在变量申明的时候给变量赋值外,还可以是通过脚本组件来给变量赋值。我们也可以通过脚本组件来访问包变量,通过设置脚本组件两个基本属性ReadOnlyVariables ,ReadWriteVariables,我们可以设定哪些变量可以访问,哪些变量可以修改,在脚本组件中通过 Dts.Variables(“variable1 “).Value = 100方式赋值给变量,也可以通过这种方式来使用变量,比如Dts.Variables(“variable2″).Value =Dts.Variables(variable1”).Value+100,这个语句表示将variable1变量加100后赋值给另外一个变量 variable2。

  2.应用

  在ssis中,变量有很广泛的作用,例如在For 循环容器中,For 循环容器定义包中的重复控制流。此循环实现类似于编程语言中的 For 循环结构。循环每次重复时,For 循环容器都计算一个表达式并重复运行其工作流,直到表达式计算结果为 False。我们通过设置变量来保证容器循环开始,发生和结束。如以下所示

  1.在sql server Business Intelligence Development Studio新建Integration Services 项目.

  2.在主菜单ssis中,单击“变量”选项,新建变量count,如图3所示

  SSIS服务中的变量探讨(图三)

  图3

  3.在控制流区域,从工具箱拖拉For 循环容器组件到空白区域中。如图4所示

  SSIS服务中的变量探讨(图四)

  图4

  4.双击For 循环容器组件,打开配置页面,在For循环属性中进行配置,如图5所示 

  SSIS服务中的变量探讨(图五)

  图5

  5.完成For 循环容器组件配置,便可再循环容器中添加其他业务组件。

  3.总结

  通过以上对SSIS中的变量概念的描述,我们对变量的基本配置和用法有了初步的认识。在实际开发中,变量的作用会体现到整个etl的流程中,会给我们的开发带来很大的便利和灵活。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐