APPLIES TO: (MSDN转载)SSIS控件之-Foreach 循环容器-Integration Services (SSIS) 表达式-标识符 (SSIS)SQL Server, including on Linux (MSDN转载)SSIS控件之-Foreach 循环容器-Integration Services (SSIS) 表达式-标识符 (SSIS)Azure SQL Database (MSDN转载)SSIS控件之-Foreach 循环容器-Integration Services (SSIS) 表达式-标识符 (SSIS)Azure SQL Data Warehouse (MSDN转载)SSIS控件之-Foreach 循环容器-Integration Services (SSIS) 表达式-标识符 (SSIS)Parallel Data Warehouse

表达式可以使用常规标识符和限定标识符。

常规标识符

例如, MiddleName( AdventureWorks 数据库的 Contacts 表中的列)是常规标识符。

常规标识符的命名必须遵循以下这些规则:

  • 按照 Unicode 标准 2.0 的规定,名称的第一个字符必须是字母,或者是下划线“”。

  • 后面的字符可以是在 Unicode 标准 2.0 中定义的字母或数字、下划线 () 以及字符 @、$ 和 #。

 重要

若要使用空格和特殊字符,必须使用限定标识符而不是常规标识符。

限定标识符

例如,列名 Middle Name 必须由方括号限定,在表达式中书写为 [Middle Name]。

方括号可与列名、变量名和函数名一起使用。

例如,名为 MiddleName 的列不带方括号也是有效的。

若要在表达式中使用此列,必须将其重命名为不带方括号的名称。

沿袭标识符

SSIS 选项卡上查看列的沿袭标识符。

例如,必须将沿袭标识符为 147 的列引用为 #147。

如果表达式分析成功,则表达式计算器会将沿袭标识符替换为对话框中的列名。

唯一列名

分析器将完全限定名视为单个列名。

下列示例说明了点分表示法中方括号的有效用法:

  • 源组件名包含空格。

    复制
    [MySo urce].Age  
    
  • 列名的第一个字符无效。

    复制
    MySource.[#Age]  
    
  • 源组件名和列名包含无效字符。

    复制
    [MySource?].[#Age]  
    

 重要

如果点分表示法中的两个元素括在一对方括号中,则表达式计算器会将此元素对解释为单个标识符,而不是源-列组合。

表达式中的变量

在 @ 字符和变量名之间添加的空格无效。

变量名和其他常规标识符遵循同样的规则:

  • 按照 Unicode 标准 2.0 的规定,名称的第一个字符必须是字母,或者是下划线“”。

  • 后面的字符可以是在 Unicode 标准 2.0 中定义的字母或数字、下划线 () 以及字符 @、$ 和 #。

如果变量名和方括号间包含空格,则无效。

 备注

用户定义的变量名和系统变量名区分大小写。

唯一变量名

表达式生成器列出了所有命名空间中的作用域内变量。

在包中使用变量。

例如,下面的表达式使用两个名为 Count的变量;一个属于 User 命名空间,另一个属于 MyNamespace 命名空间。

复制
@[User::Count] > @[MyNamespace::Count]  

 重要

必须将命名空间与限定的变量名二者的组合放在方括号中,表达式计算器才能识别该变量。

如果在 User 命名空间中 Count 的值是 10,而在 MyNamespace 中 Count 的值是 2,则表达式的计算结果是 true ,因为表达式计算器将它们识别为两个不同的变量。

例如,以下表达式原来是为了比较两个单独 Count 变量的值(10 和 2),但表达式的计算结果却是 false ,因为表达式计算器两次都使用了同一个 Count 变量实例。

复制
@Count > @Count  

相关内容

SSIS 表达式小抄表。

相关文章: