SSIS - 3.变量

时间:2024-10-19 10:33:20

  跟其他变成语言一样,SSIS包中的变量是用来存储临时值的,变量使得整个SSIS包使用起来更加灵活。比如,我们可以遍历一个文件夹来获取文件夹下的所有文件的名称并把名称存储到一个变量中以便进一步处理。在SSIS包中,变量是区分大小写的,可以分为系统变量和用户定义变量。

  一、系统变量

  系统变量是由SQL Server Integration Services定义的,是用来存储包执行信息和它的对象的。开发者不允许添加新的系统变量,并且也不建议开发者更改系统变量的值,下面是常用的系统变量列表:

SSIS - 3.变量

查看更多的系统变量,可以访问链接:https://docs.microsoft.com/en-us/sql/integration-services/system-variables?view=sql-server-2017

二、用户自定义变量

用户自定义变量是由开发者来自定义的,可以定义多个。下面按步骤介绍下怎么样自变量定义:

1)打开创建的ETL包,如果没有显示变量窗口,可以单击SSIS->变量来打开。

SSIS - 3.变量

2)单击“添加变量”按钮来添加变量

SSIS - 3.变量

3)添加2个变量,分别重命名为V1,V2,范围和数据类型保持默认,更改2个变量的值分别为1,2。点击“删除变量”按钮可以删除不需要的变量。

SSIS - 3.变量

4)添加变量V3,使用表达式:@[User::V1] + @[User::V2]为变量V3赋值,此时,V3的数据类型和值是禁止修改的,它会根据表达式的结果自动计算出来。

SSIS - 3.变量

5)Scope中定义了变量适用的范围,默认的Scope是包名称,这就是说变量适用于整个包,就像其他语言中的全局变量。如果你想要一个变量在包中指定的对象中适用,你只需要单击“移动变量”按钮来改变这个变量的适用范围。

6)变量的数据类型有下面这些,默认的数据类型是 Int32.

SSIS - 3.变量

DBNull是数据库空值,Object是包中功能非常强大的数据类型,它能够用来代表表中的部分记录,图片或列表等等。如果你需要看系统变量或者所有Scope的变量,可以单击变量窗口中的最后一个按钮,弹出变量网格选项对话框如下图所示:

SSIS - 3.变量

三、变量属性

在变量窗口中选中一个变量,可以在属性窗口中看到该变量的所有属性。单击“视图”->属性窗口或者按F4可以打开属性窗口,下面是变量V1的属性。

SSIS - 3.变量

下面是属性窗口中可以修改的属性值。

SSIS - 3.变量

注意:用户和系统是Integration Services提供的两个命名空间,系统的名称空间包含所有的系统变量并且这些系统变量不允许被修改。用户命名空间包含所有用户自定义的变量,我们也可以创建一个新的命名空间,可以自定义些我们需要的变量。