共用方式為


識別碼 (MDX)

識別碼是 Microsoft SQL Server Analysis Services 物件的名稱。每個 Analysis Services 物件都必須要擁有一個識別碼。這包括 Cube、維度、階層、層級、成員等等。您可以使用物件的識別碼,以參考多維度運算式 (MDX) 陳述式中的物件。

根據您如何命名物件,物件識別碼的識別碼將會是一般識別碼或是分隔識別碼。

[!附註]

一般識別碼與分隔識別碼都必須包含在 1 到 100 個字元之間。

使用一般識別碼

一般識別碼是一個物件名稱,符合以下的一般識別碼格式化規則。一般識別碼可以搭配或不搭配分隔符號來使用。

一般識別碼的格式化規則

  1. 第一個字元必須是以下任一項:

    • Unicode Standard 2.0 所定義的字母。除了其他語言的字母字元之外,字母的 Unicode 定義還包括從 a 到 z 與從 A 到 Z 的拉丁字元。

    • 底線 (_)。

  2. 後續的字元可為:

    • Unicode Standard 2.0 所定義的字母。

    • 其他基本拉丁文或其他國家 (地區) 字集中的十進位數字。

    • 底線 (_)。

  3. 識別碼絕不能是 MDX 保留關鍵字。MDX 中的保留關鍵字不區分大小寫。如需詳細資訊,請參閱<保留的關鍵字 (MDX 語法)>。

  4. 不允許內嵌的空格或特殊字元。

一般識別碼的範例

在以下 MDX 陳述式中,識別碼 Measures、Product 與 Style 符合一般識別碼的格式化規則。這些一般識別碼不需要分隔符號。

SELECT Measures.MEMBERS ON COLUMNS,

Product.Style.CHILDREN ON ROWS

FROM [Adventure Works]

 

雖然不需要使用,但您還是可以將分隔符號與一般識別碼搭配使用。在以下 MDX 陳述式中,已經使用方括號正確地分隔 Measures、Product 與 Style 一般識別碼。

SELECT [Measures].MEMBERS ON COLUMNS,

[Product].[Style].CHILDREN ON ROWS

FROM [Adventure Works]

 

使用分隔識別碼

不符合一般識別碼格式化規則的識別碼,一定要使用方括號 ([]) 分隔。

[!附註]

分隔符號僅供識別使用。不管 Analysis Services 中是否有關鍵字被標示為保留,關鍵字也不能使用分隔符號。

您可以在下列情況下使用分隔識別碼:

  • 當物件名稱或名稱的一部份使用保留關鍵字時。

    建議您不要使用保留關鍵字作為物件名稱。從舊版 Analysis Services 升級的資料庫,識別碼可能會包含在先前版本中不是保留字,但卻是 SQL Server Analysis Services 保留字的單字。您可以使用分隔識別碼參考物件,直到您變更了物件的識別碼。

  • 當物件名稱使用未列為限定識別碼的字元時。

    Analysis Services 允許分隔識別碼使用目前字碼頁中的任何字元。不過,於物件名稱任意使用特殊字元,會使 MDX 陳述式和指令碼難以讀懂和維護。

分隔識別碼的格式化規則

分隔識別碼的主體可以包含目前字碼頁中的任何字元組合,包括分隔字元本身在內。如果分隔識別碼的主體包含分隔字元,就需要特殊的處理:

  • 如果識別碼的主體只包含左方括號 ([),則不需要其他處理。

  • 如果識別碼的主體包含右方括號 (]),您必須指定兩個右方括號 (]])。

分隔識別碼的範例

在以下的假設 MDX 陳述式中,Sales Volume、Sales Cube 與 select 為分隔的識別碼:

-- The [Sales Volume] and [Sales Cube] identifiers contain a space.

SELECT Measures.[Sales Volume]

FROM [Sales Cube]

WHERE Product.[select]

-- The [select] identifier is a reserved keyword.

在下一個範例中,物件的名稱是 Total Profit [Domestic]。若要參考此物件,您必須使用以下分隔識別碼:

[Total Profit [Domestic]]]

請注意,不需要變更 Domestic 前的左方括號,就可以建立分隔識別碼。但是,必須以兩個右方括號取代 Domestic 後面的右方括號。

分隔多個識別碼部份

使用限定的物件名稱時,您可能必須分隔構成物件名稱的多個識別碼。例如,需要分隔以下程式碼中的 Front Brakes 識別碼。

SELECT [Measures].MEMBERS ON COLUMNS,

[Product].[Product].[Front Brakes] ON ROWS

FROM [Adventure Works]

此外,前例中的 Measures 識別碼已經進行分隔,以示範如何分隔多個識別碼。