标识符(MDX)

标识符是分析服务对象的名称。 每个对象都可以且必须拥有标识符。 这包括立方体、维度、层级、层级、成员等。 你在多维表达式(MDX)语句中使用对象的标识符来引用该对象。

根据你如何命名对象,对象标识符的标识符要么是常规标识符,要么是分隔标识符。

注释

常规和分隔标识符都必须包含1到100字符。

使用常规标识符

常规标识符是一个对象名称,符合以下常规标识符的格式规则。 常规标识符可以带分隔符或不带分隔符使用。

常规标识符的格式规则

  1. 第一个字符必须是下列字符之一:

    • 根据Unicode标准2.0定义的字母。 除了其他语言的字母字符外,Unicode 对字母的定义还包括从a到z以及从A到Z的拉丁字母字符。

    • 底划线(_)。

  2. 后续字符可以是:

    • 字母定义于Unicode标准2.0中。

    • 来自基本拉丁字母或其他国家文字系统的十进制数。

    • 底划线(_)。

  3. 标识符不得为MDX保留的关键词。 保留关键词在MDX中不区分大小写。 更多信息请参见保留关键词(MDX语法)。

  4. 不允许嵌入空格或特殊字符。

常规标识符的示例

在以下MDX语句中,标识符Measures、、ProductStyle和,符合常规标识符的格式规则。 这些常规标识符不需要分隔符。

SELECT Measures.MEMBERS ON COLUMNS,  
Product.Style.CHILDREN ON ROWS  
FROM [Adventure Works]  
  

虽然不是必须的,但你也可以使用带有常规标识符的分隔符。 在以下MDX语句中,Measures已正确用括号区分了、和ProductStyle常规标识符。

SELECT [Measures].MEMBERS ON COLUMNS,  
[Product].[Style].CHILDREN ON ROWS  
FROM [Adventure Works]  
  

使用分隔标识符

不符合常规标识符格式规则的标识符必须始终用括号([])进行分隔。

注释

分隔符仅用于标识符。 无论关键词在分析服务中是否被标记为保留,都不能使用分隔符。

你在以下情况下使用分隔标识符:

  • 当某个物体或其部分名称使用保留词时。

    我们建议不要将保留关键词用作对象名称。 从早期版本的分析服务升级的数据库可能包含包含早期版本中未保留但现在已被保留的单词标识符。 在你能更改对象标识符之前,可以使用分隔标识符来引用对象。

  • 当对象名称使用未列为合格标识符的字符时。

    Analysis Services 允许分隔标识符使用当前代码页中的任何字符。 然而,对象名称中不加区分使用特殊字符可能会使MDX语句和脚本难以读取和维护。

分隔标识符的格式规则

分隔标识符的正文可以包含当前代码页中任意组合的字符,包括分隔字符本身。 如果分隔标识符的正文包含分隔字符,则需要特殊处理:

  • 如果标识符正文仅包含左方括号([),则无需额外处理。

  • 如果标识符正文包含右括号(]),则必须指定两个右括号(]])。

分隔标识符的示例

在以下假设的MDX陈述中, Sales Volume, , Sales Cubeselect 是分隔标识符:

-- The [Sales Volume] and [Sales Cube] identifiers contain a space.  
SELECT Measures.[Sales Volume]  
FROM [Sales Cube]  
WHERE Product.[select]  
-- The [select] identifier is a reserved keyword.  

在下一个例子中,一个对象的名称是 Total Profit [Domestic]。 要引用该对象,您必须使用以下分隔标识符:

[Total Profit [Domestic]]]

注意,之前 Domestic 的左括号无需更改即可创建分隔标识符。 然而,右 Domestic 侧的后方支架被替换为两个右侧支架。

用多部分划分标识符

使用限定对象名称时,可能需要分隔多个组成对象名称的标识符。 例如,以下代码中的前刹车标识符需要进行分界。

选择[测量]。各位专栏成员,

[产品]。[产品]。[前刹车]划行

摘自[冒险工作]

此外,前例中的度量标识符被限定为展示分隔多个标识符。