对象命名规则 (Analysis Services)
适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
本主题介绍对象命名约定,以及SQL Server Analysis Services中的代码或脚本中不能在任何对象名称中使用的保留字词和字符。
命名约定
每个对象都有 一个 Name 和 ID 属性,该属性在父集合的范围内必须是唯一的。 例如,只要两个维度分别驻留在不同的数据库中,这两个维度就能具有相同的名称。
尽管可以手动指定 ID,但创建对象时通常会自动生成 ID 。 一旦开始生成模型,就不应更改 ID 。 整个模型中的所有对象引用都基于 ID。 因此,更改 ID 很容易导致模型损坏。
DataSource 和 DataSourceView 对象具有明显的命名约定例外。 DataSource ID 可以设置为单个点 (.) ,这是不唯一的,作为对当前数据库的引用。 另一个例外是 DataSourceView,它遵循.NET Framework中为 DataSet 对象定义的命名约定,其中 Name 用作标识符。
以下规则适用于 Name 和 ID 属性。
名称不区分大小写。 同一数据库中不能有一个名为“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。 默认值等效于多维的,因此不支持在列名称中使用保留字符。