APPLIES TO: SQL Server, including on Linux
Azure SQL Database
Azure SQL Data Warehouse
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 表达式小抄表。



