对象命名(Analysis Services - 多维数据)

对象名称、ID 和引用

一般情况下,每个主要对象都包含有以下属性:

  • Name   通常,同级对象的名称在父集合的范围内是唯一的。 例如,两个不同的 Database 对象可能具有相同的 Dimension 名称。 但在这两个 Database 中,Dimension 名称都是唯一的。 有关此规则的例外情况将稍后介绍。 例如,Measure 名称在 Cube 级别需要是唯一的,但在父 MeasureGroup 级别却不需要是唯一的。

  • ID   应用于 Name 属性的唯一性限制也适用于 ID 属性。 此外,ID 属性不可更改。ID 属性是在创建时由用户或应用程序分配的,当然也可由服务器自动分配(当未指定该属性时)。 如果由服务器分配 ID 属性,则服务器会将 ID 属性设置为对象的初始名称。

  • Description

对象引用

对象是通过它们的 ID 属性进行引用的。 ID 属性的命名约定规定,该属性名称以基于目标类型的名称开头,需要添加后缀“ID”,同时还可添加一个提供对象所充当角色的其他信息的前缀。 例如,如果对象为 Cube 中使用的默认度量值, 则其目标类型为 Measure。 您可以向此目标类型名称添加后缀“ID”和前缀“Default”。 这样就可生成 ID 属性名称 DefaultMeasureID,如以下代码中所示:

<Cube>

<DefaultMeasureID>Amount</DefaultMeasureID>

<Cube>

 

如果需要包含多个 ID 的限定名称(例如,CubeID 和 MeasureID 都引用另一个 Cube 中的度量值),则可引入外部元素,以包含 ID 元素集。

引用异常

由单个点 (.) 组成的 DataSource 引用 可引用当前 OLAP 服务器的当前数据库。 例如,下面的 XML 片段指向当前 OLAP 服务器实例的当前 Database:

<DataSourceID>.</DataSourceID>

 

对 DataSourceView (DSV) 元素的引用是引用规则的例外情况。 Microsoft .NET Framework 中的 DataSet 对象对 DSV 的架构进行了介绍。 在该架构中,DSV 对象具有 Name,但没有不变的 ID。 因此,对 DSV 对象的引用需要使用 Name 标识机制。 例如,引用 ColumnBinding.TableID 就不包含 ID, 而包含相应表的 Name。

命名规则

对于 Name 和 ID 属性的大小写和空格问题,ASSL 将应用与 DSO 8.0 中所用规则相同的规则:

  • Name 和 ID 的唯一性检查不区分大小写。 因此,同一数据库中不可同时拥有名为“sales”和“Sales”的两个 Cube。

  • Name 或 ID 属性可包含嵌入空格,但却不能有前导空格或尾随空格。 前导空格和尾随空格将会被隐式删除。 此规则既适用于对象的 Name 和 ID,也适用于引用该 Name 和 ID 的元素的值。

以下规则也适用于 Name 和 ID 属性。 这些规则与 DSO 8.0 中的规则类似。

  • 最大字符数为 100。

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

不可使用以下保留名称:

  • AUX

  • CLOCK$

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

  • CON

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

  • NUL

  • PRN

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

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

对象

无效字符

Server

此名称必须遵循计算机名称规则。 (IP 地址无效。)

DataSource

: / \ * | ? " () [] {} <>

Level 或 Attribute

. , ; ' ` : / \ * | ? " & % $ ! + = [] {} < >

Dimension 或 Hierarchy

.,, ; ' ` : / \ * | ? " & % $ ! + = () [] {} <,>

所有其他对象

. , ; ' ` : / \ * | ? " & % $ ! + = () [] {} < >

本地化的名称

客户端可见的对象标题(例如,Dimension、层次结构和 Level)可本地化为不同的语言。 通过命令方式定义的对象标题(例如,计算度量值和命名集)作为对象的 MDX 定义的一部分提供。

属性的绑定还允许向不同语言提供属性名称的不同源(例如不同的源列)。

不可本地化对象的名称。