对象命名规则 (Analysis Services)

适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

本主题介绍对象命名约定,以及SQL Server Analysis Services中的代码或脚本中不能在任何对象名称中使用的保留字词和字符。

命名约定

每个对象都有 一个 NameID 属性,该属性在父集合的范围内必须是唯一的。 例如,只要两个维度分别驻留在不同的数据库中,这两个维度就能具有相同的名称。

尽管可以手动指定 ID,但创建对象时通常会自动生成 ID 。 一旦开始生成模型,就不应更改 ID 。 整个模型中的所有对象引用都基于 ID。 因此,更改 ID 很容易导致模型损坏。

DataSourceDataSourceView 对象具有明显的命名约定例外。 DataSource ID 可以设置为单个点 (.) ,这是不唯一的,作为对当前数据库的引用。 另一个例外是 DataSourceView,它遵循.NET Framework中为 DataSet 对象定义的命名约定,其中 Name 用作标识符。

以下规则适用于 NameID 属性。

  • 名称不区分大小写。 同一数据库中不能有一个名为“sales”的多维数据集和另一个名为“Sales”的多维数据集。

  • 对象名称中不允许使用前导空格或尾随空格,但可以在名称中嵌入空格。 前导空格和尾随空格将会被隐式删除。 这同时适用于对象的 名称和ID

  • 最大字符数为 100。

  • 对标识符的第一个字符没有特殊要求。 第一个字符可为任意有效字符。

保留字和字符

保留字用英语表示,且适用于对象名称而非标题。 如果您在对象名称中意外使用了保留字,则将发生验证错误。 对于多维和数据挖掘模型,在任何对象名称中任何时候都不能使用下面描述的保留字。

对于表格模型(其中的数据库兼容性设置为 1103),已放宽了针对某些对象、扩展字符的不合规要求和某些客户端应用程序命名约定的验证规则。 满足这些条件的数据库受更放宽的验证规则约束。 在这种情况下,对象名称可以包含受限制的字符且能够通过验证。

保留字

  • AUX

  • CLOCK$

  • COM1 到 COM9(COM1、COM2、COM3 等)

  • CON

  • LPT1 到 LPT9(LPT1、LPT2、LPT3 等)

  • NUL

  • PRN

  • XML 内的任何字符串的字符都不可为 NULL

保留字符

下表列出了特定对象的无效字符。

Object 无效字符
Server 在对服务器对象进行命名时,请遵循 Windows 服务器命名约定。 有关详细信息 ,请参阅 Windows) (命名约定
DataSource : / \ * | ? " () [] {}<>
级别属性 . , ; ' ` : / \ * | ? " & % $ ! + = [] {}<>
维度层次结构 . , ; ' ` : / \ * | ? " & % $ ! + = () [] {}<,>
所有其他对象 . , ; ' ` : / \ * | ? " & % $ ! + = () [] {}<>

例外:允许保留字符的情况

如前所述,特定模式和兼容级别的数据库可以具有包含保留字符的对象名称。 对于允许使用扩展字符的表格数据库(1103 或更高),维度属性、层次结构、级别、度量值和 KPI 对象名称可以包含保留字符:

服务器模式和数据库兼容级别 是否允许保留字符?
MOLAP(所有版本)
表格 - 1050
表格 - 1100
表格 - 1130 及更高版本

数据库可以拥有默认的 ModelType。 默认值等效于多维的,因此不支持在列名称中使用保留字符。

另请参阅

MDX 保留字
Analysis Services 中的翻译支持