标识符 (DMX)

Microsoft SQL Server Analysis Services 中的所有对象都必须有标识符。对象的名称便是它的标识符。 服务器、数据库和数据库对象(如数据源、数据源视图、多维数据集、维度、挖掘模型等)都具有标识符。

数据挖掘扩展插件 (DMX) 中有两类标识符:

  • 常规标识符

  • 分隔标识符

定义对象时会创建一个对象标识符。 然后,可使用该标识符来引用对象。 标识符包含的字符数必须小于或等于 100。

常规标识符

DMX 中的常规标识符符合 Analysis Services 在标识符格式方面的规则。 DMX 中的常规标识符不需要分隔符。 下面是一个 DMX 语句示例,其中使用了不带分隔符的常规标识符:

SELECT * FROM Clustering.CONTENT

常规标识符规则

下面是有关常规标识符格式的规则:

  1. 常规标识符的第一个字符必须是下列字符之一:

    • Unicode 标准 2.0 定义的字母, 包括从 a 到 z 和从 A 到 Z 的拉丁字符以及其他语言的字母字符。

    • 下划线 (_)。

  2. 后续字符可以是:

    • Unicode 标准 2.0 定义的字母。

    • 基本拉丁字符或其他国家/地区字符中的十进制数字。

    • 下划线 (_)。

  3. 标识符必须不能是 DMX 保留字。 DMX 中的保留字不区分大小写。 有关详细信息,请参阅保留关键字 (DMX)

  4. 标识符不能包含嵌入的空格或特殊字符。

在 DMX 语句中使用不符合上述规则的标识符时,必须使用方括号分隔这些标识符。

分隔标识符

分隔标识符括在方括号 ([ ]) 中。 下面是一个 DMX 语句示例,其中的分隔标识符符合上述规则。

SELECT * FROM [Marketing_Clusters].CONTENT

不符合常规标识符格式规则的标识符必须使用分隔符。 下面是一个 DMX 语句示例,其中的分隔标识符包含一个空格:

SELECT * FROM [Targeted Mailing].CONTENT

请在下列情况下使用分隔标识符:

  • 使用保留关键字作为对象名或对象名的一部分时。

    建议您不要将保留关键字用作对象名。 在由早期版本的 Analysis Services 升级的数据库中可能包含这样的标识符,其中包括在早期版本的 Analysis Services 中未保留,但在 SQL Server 2005 Analysis Services 中保留的字。 只有在使用分隔标识符引用此类对象后,才能更改对象的名称。

  • 使用未被列为限定标识符的字符时。

    在 Analysis Services 中,可以在分隔标识符中使用当前代码页中的任何字符。但是,在对象名称中不加选择地使用特殊字符将使 DMX 语句难以阅读和维护。

分隔标识符规则

以下是分隔标识符的格式规则:

  1. 分隔标识符可以包含与常规标识符相同的字符数(1 到 100 个,不包括分隔符本身)。

  2. 标识符的主体可以包含当前代码页内所用字符(包括分隔符本身)的任意组合。 如果标识符的主体本身包含分隔符,则需进行特殊处理:

    • 如果标识符的主体包含左方括号 ([),则无需进行额外处理。

    • 如果标识符的主体包含一个右方括号 (]),则必须指定两个右方括号 (]]),以在代码页中对其进行表示。

分成多个部分的标识符

使用限定对象名称时,可能要分隔组成对象名的多个标识符。 必须单独分隔每个标识符。