对象命名规则 (Analysis Services)
本主题介绍对象命名约定,以及 Analysis Services 中的代码或脚本中不能在任何对象名称中使用的保留字词和字符。
命名约定
每个对象都拥有一个 Name
和 ID
属性,该属性在父集合的范围内必须是唯一的。 例如,只要两个维度分别驻留在不同的数据库中,这两个维度就能具有相同的名称。
虽然可以手动指定 ID
,但它通常会在创建对象时自动生成。 在开始构建模型之后,您绝不应更改 ID
。 模型中的所有对象引用都基于 ID
, 因此,更改 ID
容易导致模型损坏。
DataSource
和 DataSourceView
对象是命名约定的两个值得注意的例外。 DataSource
ID 可以设置为不具唯一性的一个点 (.),这表示对当前数据库的引用。 另一个例外是 DataSourceView
,它遵循的是针对 .NET Framework 中的 DataSet
对象定义的命名约定(其中的 Name
用作标识符)。
以下规则适用于 Name
和 ID
属性。
名称不区分大小写。 同一数据库中不能有一个名为“sales”的多维数据集和另一个名为“Sales”的多维数据集。
对象名称中不允许使用前导空格或尾随空格,但可以在名称中嵌入空格。 前导空格和尾随空格将会被隐式删除。 这适用于对象的
Name
和ID
。最大字符数为 100。
对标识符的第一个字符没有特殊要求。 第一个字符可为任意有效字符。
保留字和字符
保留字用英语表示,且适用于对象名称而非标题。 如果您在对象名称中意外使用了保留字,则将发生验证错误。 对于多维和数据挖掘模型,在任何对象名称中任何时候都不能使用下面描述的保留字。
对于表格模型(其中的数据库兼容性设置为 1103),已放宽了针对某些对象、扩展字符的不合规要求和某些客户端应用程序命名约定的验证规则。 满足这些条件的数据库受更放宽的验证规则约束。 在这种情况下,对象名称可以包含受限制的字符且能够通过验证。
保留字
AUX
CLOCK$
COM1 到 COM9(COM1、COM2、COM3 等)
CON
LPT1 到 LPT9(LPT1、LPT2、LPT3 等)
NUL
PRN
XML 内的任何字符串的字符都不可为 NULL
保留字符
下表列出了特定对象的无效字符。
对象 | 无效字符 |
---|---|
Server |
在对服务器对象进行命名时,请遵循 Windows 服务器命名约定。 有关详细信息 ,请参阅 Windows) (命名约定 。 |
DataSource |
: / \ * \| ? " () [] {} <> |
Level 或 Attribute |
. , ; ' ` : / \ * & \| ? " & % $ ! + = [] {} < > |
Dimension 或 Hierarchy |
. , ; ' ` : / \ * \| ? " & % $ ! + = () [] {} <,> |
所有其他对象 | . , ; ' ` : / \ * \| ? " & % $ ! + = () [] {} < > |
例外:允许保留字符的情况
如前所述,特定模式和兼容级别的数据库可以具有包含保留字符的对象名称。 对于允许使用扩展字符的表格数据库(1103 或更高),维度属性、层次结构、级别、度量值和 KPI 对象名称可以包含保留字符:
服务器模式和数据库兼容级别 | 是否允许保留字符? |
---|---|
MOLAP(所有版本) | 否 |
表格 - 1050 | 否 |
表格 - 1100 | 否 |
表格 - 1130 及更高版本 | 是 |
数据库可以拥有默认的 ModelType。 默认值等效于多维的,因此不支持在列名称中使用保留字符。