在包中使用表达式
表达式是生成单个数据值的符号(标识符、文字、函数和运算符)的组合。简单的表达式可以是单个常量、变量或函数。更多情况下,表达式较为复杂,会使用多个运算符和函数,并且引用多个列和变量。在 Integration Services 中,表达式可以用于定义 CASE 语句的条件,创建和更新数据列中的值,为变量赋值,在运行时更新或填充属性,定义优先约束中的约束,以及提供 For 循环容器所使用的表达式。
Integration Services 中的下列元素可以使用表达式:
条件性拆分转换可以根据表达式实现决策结构,将数据行定向到不同目标。条件性拆分转换中所使用的表达式的计算结果必须为 true 或 false。例如,如果行满足表达式“Column1 > Column2”中的条件,则可以路由到单独的输出。
派生列转换使用通过表达式所创建的值来填充数据流中的新列或更新现有列。例如,表达式 Column1 + " ABC" 可以用于更新值,或创建具有串联字符串的新值。
变量可以使用表达式来设置其值。例如,GETDATE() 可以将变量的值设置为当前日期。
优先约束可以使用表达式指定确定在包中运行约束任务还是容器的条件。优先约束中使用的表达式的计算结果必须为 true 或 false。例如,表达式 @A > @B 比较两个用户定义的变量,以确定是否运行受约束任务。
For 循环容器可以使用表达式来生成循环结构使用的初始化语句、计算语句、增量语句。例如,表达式 @Counter = 1 初始化循环计数器。
表达式还可以用于更新包、容器(如 For 循环和 Foreach 循环)、任务、连接管理器、日志提供程序以及 Foreach 枚举器的属性值。例如,使用属性表达式,可以将字符串“Localhost.AdventureWorks”分配给执行 SQL 任务的 ConnectionName 属性。有关详细信息,请参阅在包中使用属性表达式。
表达式基于表达式语言和表达式计算器。表达式计算器分析表达式,并确定表达式是否按照表达式语言的规则执行。有关详细信息,请参阅 Integration Services 表达式参考。
**“条件性拆分转换编辑器”对话框、“派生列转换编辑器”对话框和“表达式生成器”**对话框中提供的表达式生成器是用于生成表达式的图形工具。
表达式生成器提供包含包特定元素的文件夹,还提供包含表达式语言所提供的函数、类型转换和运算符的文件夹。包特定元素包括系统变量和用户定义的变量。在**“条件性拆分转换编辑器”对话框和“派生列转换编辑器”对话框中,您还可以查看数据列。若要为转换生成表达式,可以将项从文件夹中拖到“条件”或“表达式”**列中,也可以直接在列中键入表达式。
注意 |
---|
用户定义的变量名和系统变量名区分大小写。 |
变量具有作用域,因此表达式生成器中的**“变量”**文件夹只列出处于作用域中并且可以使用的变量。有关详细信息,请参阅 Integration Services 变量。
以下过程介绍使用表达式生成器创建表达式的步骤。
使用表达式生成器创建表达式
|