共用方式為


內建成員屬性 (MDX)

Analysis Services 公開維度成員的內建屬性,您可以將這些內建屬性加入查詢,以傳回用於自訂應用程式的其他資料或中繼資料,或者協助調查或建構模型。 如果使用 SQL Server 用戶端工具,可在 SQL Server Management Studio (SSMS) 中檢視內建屬性。

內建屬性包含 ID、KEY、KEYx 和 NAME,這是每個成員在任何層級公開的屬性。 您也可以傳回位置資訊,例如 LEVEL_NUMBER 或 PARENT_UNIQUE_NAME 等。

視您建構查詢的方式,以及用於執行查詢的用戶端應用程式而定,結果集中不一定會顯示成員屬性。 如果使用 SQL Server Management Studio 測試或執行查詢,可按兩下結果集中的成員,以開啟 [成員屬性] 對話方塊,並顯示每個內建成員屬性的值。

如需使用及檢視維度成員屬性的簡介,請參閱<在 SSAS 的 MDX 查詢視窗中檢視 SSMS 成員屬性>。

[!附註]

因為提供者符合 OLE DB 規格的 OLAP 小節 (1999 年 3 月 (2.6 節) ),所以 Microsoft SQL Server Analysis Services 支援此主題中列出的內建成員屬性。

SQL Server Analysis Services 以外的提供者可支援其他內建成員屬性。 如需其他提供者支援之內建成員屬性的詳細資訊,請參閱這些提供者提供的文件。

成員屬性類型

SQL Server Analysis Services 支援的內建成員屬性有兩種類型:

  • 區分內容的成員屬性
    這些成員屬性必須在特定階層或層級的內容中使用,而且要將值提供給指定維度或層級的每個成員。

    請注意下列範例如何包含 KEY 屬性的路徑:MEMBER [Measures].[Parent Member Key] AS [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("KEY")。

  • 不區分內容的成員屬性
    這些成員屬性無法在特定的維度或層級的內容中使用,以及將值傳回給座標軸上的所有成員。

    不區分內容的屬性為獨立屬性,且不包含路徑資訊。 請注意,在下列範例中未針對 PARENT_UNIQUE_NAME 指定維度或層級:DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS

不管內建成員屬性是否會區分內容,都適用以下使用方式規則:

  • 您只能指定座標軸上預計之維度成員相關的內建成員屬性。

  • 您可以利用不區分內容的內建成員屬性,在同一個查詢中混合區分內容的成員屬性要求。

  • 您可以使用 PROPERTIES 關鍵字以查詢屬性。

以下各節將描述 SQL Server Analysis Services 中可用的各種區分內容及不區分內容的內建成員屬性,以及如何將 PROPERTIES 關鍵字與每種屬性類型搭配使用。

區分內容的成員屬性

所有維度成員及層級成員支援區分內容的內建成員屬性清單。 下表列出這些區分內容的屬性。

屬性

描述

ID

內部維護用的成員識別碼。

Key

原始資料類型的成員索引鍵值。 MEMBER_KEY 是為回溯相容性而提供。 對於非複合索引鍵,MEMBER_KEY 的值與 KEY0 相同,對於複合索引鍵,MEMBER_KEY 屬性為 Null。

KEYx

成員的索引鍵,其中 x 是索引鍵以零為基底的序數。 KEY0 可用於複合和非複合索引鍵,但主要會用於複合索引鍵。

若為複合索引鍵,KEY0、KEY1、KEY2 等會共同形成複合索引鍵。 您可以在查詢中個別使用每一個索引鍵,以傳回複合索引鍵的一部分。 例如,指定 KEY0 可傳回複合索引鍵的第一個部分,指定 KEY1 可傳回複合索引鍵的下一個部分,依此類推。

若為非複合索引鍵,則 KEY0 相當於 Key。

請注意,KEYx 可用於內容,也可以在沒有內容的情況下使用。 因此會出現在兩個清單中。

如需如何使用此成員屬性的範例,請參閱<簡單的 MDX 小知識:Key0、Key1、Key2>。

Name

成員的名稱。

區分內容屬性的 PROPERTIES 語法

您可以在特定維度或層級的內容中使用這些成員屬性,而且要將值提供給指定維度或階層的每個成員。

對於維度成員屬性,您可以在屬性名稱前面加上套用該屬性的維度名稱。 下列範例會顯示適當語法:

DIMENSION PROPERTIES Dimension.Property_name

對於層級成員屬性,您可以在屬性名稱前面,只加上層級名稱,或者對於其他規格,則可加上維度及層級名稱。 下列範例會顯示適當語法:

DIMENSION PROPERTIES [Dimension.]Level.Property_name

為了方便說明,您要傳回 [Sales] 維度中每個參考成員的所有名稱。 若要傳回這些名稱,您要在多維度運算式 (MDX) 查詢中使用以下陳述式:

DIMENSION PROPERTIES [Sales].Name

不區分內容的成員屬性

所有成員支援同樣不顧內容的內建成員屬性清單。 這些屬性能提供應用程式可用以加強使用者經驗的其他資訊。

下表列出 SQL Server Analysis Services 支援的不區分內容內建屬性。

[!附註]

MEMBERS 結構描述資料列集中的資料行支援下表列出的內建成員屬性。 如需 MEMBERS 結構描述資料列集的詳細資訊,請參閱<MDSCHEMA_MEMBERS 資料列集>。

屬性

描述

CATALOG_NAME

此成員所屬的 Cube 名稱。

CHILDREN_CARDINALITY

成員擁有的子系數目。 這可為一個估計值,因此您不應該依賴此值做為確實計數。 提供者應會傳回最佳的可能估計值。

CUSTOM_ROLLUP

自訂成員運算式。

CUSTOM_ROLLUP_PROPERTIES

自訂成員屬性。

DESCRIPTION

成員的可讀取描述。

DIMENSION_UNIQUE_NAME

此一成員所屬維度的唯一名稱。 對於會依識別資格產生唯一名稱的提供者,此名稱的每個元件會使用分隔符號。

HIERARCHY_UNIQUE_NAME

階層架構的唯一名稱。 如果該成員屬於多個階層,該成員所屬的每個階層都會有一個資料列。 對於會依識別資格產生唯一名稱的提供者,此名稱的每個元件會使用分隔符號。

IS_DATAMEMBER

指出成員是否為資料成員的布林值。

IS_PLACEHOLDERMEMBER

指出成員是否為預留位置的布林值。

KEYx

成員的索引鍵,其中 x 是索引鍵以零為基底的序數。 KEY0 可用於複合和非複合索引鍵。

若為非複合索引鍵,則 KEY0 相當於 Key。

若為複合索引鍵,KEY0、KEY1、KEY2 等會共同形成複合索引鍵。 您可以在查詢中個別參考每一個索引鍵,以傳回複合索引鍵的一部分。 例如,指定 KEY0 可傳回複合索引鍵的第一個部分,指定 KEY1 可傳回複合索引鍵的下一個部分,依此類推。

請注意,KEYx 可用於內容,也可以在沒有內容的情況下使用。 因此會出現在兩個清單中。

如需如何使用此成員屬性的範例,請參閱<簡單的 MDX 小知識:Key0、Key1、Key2>。

LCIDx

以地區設定識別碼十六進位值翻譯的成員標題,其中 x 是地區設定識別碼十進位值 (例如,代表加拿大英文的 LCID1009)。 只有當翻譯的標題資料行繫結至資料來源時,才適用此功能。

LEVEL_NUMBER

成員距根階層的距離。 根層級為零。

LEVEL_UNIQUE_NAME

成員所屬層級的唯一名稱。 對於會依識別資格產生唯一名稱的提供者,此名稱的每個元件會使用分隔符號。

MEMBER_CAPTION

與該成員關聯的標籤或標題。 標題主要是供顯示之用。 如果標題不存在,查詢就會傳回 MEMBER_NAME。

MEMBER_KEY

原始資料類型的成員索引鍵值。 MEMBER_KEY 是為回溯相容性而提供。 對於非複合索引鍵,MEMBER_KEY 的值與 KEY0 相同,對於複合索引鍵,MEMBER_KEY 屬性為 Null。

MEMBER_NAME

成員的名稱。

MEMBER_TYPE

成員的類型。 此屬性可以有下列其中一個值:

  • MDMEMBER_TYPE_REGULAR

  • MDMEMBER_TYPE_ALL

  • MDMEMBER_TYPE_FORMULA

  • MDMEMBER_TYPE_MEASURE

  • MDMEMBER_TYPE_UNKNOWN

MDMEMBER_TYPE_FORMULA 優先於 MDMEMBER_TYPE_MEASURE。 因此,如果 Measures 維度有一個公式 (導出) 成員,導出成員的 MEMBER_TYPE 屬性為 MDMEMBER_TYPE_FORMULA。

MEMBER_UNIQUE_NAME

成員的唯一名稱。 對於會依識別資格產生唯一名稱的提供者,此名稱的每個元件會使用分隔符號。

MEMBER_VALUE

原始類型的成員值。

PARENT_COUNT

此成員擁有的父系數目。

PARENT_LEVEL

成員的父系距階層之根層級的距離。 根層級為零。

PARENT_UNIQUE_NAME

成員之父系的唯一名稱。 如果是根層級的任何成員,則會傳回 NULL。 對於會依識別資格產生唯一名稱的提供者,此名稱的每個元件會使用分隔符號。

SKIPPED_LEVELS

略過的成員層級數目。

UNARY_OPERATOR

成員的一元運算子。

UNIQUE_NAME

成員的完整名稱使用下列格式:[dimension].[level].[key6]。

不區分內容屬性的 PROPERTIES 語法

使用以下語法指定會使用 PROPERTIES 關鍵字的內建、不區分內容的成員屬性:

DIMENSION PROPERTIES Property

請注意,此語法不允許依維度或層級限定屬性。 因為座標軸的所有成員套用了不區分內容的內建成員屬性,所以無法限定屬性。

例如,指定 DESCRIPTION 內建成員屬性的 MDX 陳述式會有以下語法:

DIMENSION PROPERTIES DESCRIPTION

此陳述式會傳回座標軸維度中每個成員的描述。 若要以 Dimension.DESCRIPTION 或 Level.DESCRIPTION 的維度或層級嘗試限定屬性,則無法驗證該陳述式。

範例

下列範例顯示傳回內建屬性的 MDX 查詢。

範例 1:在查詢中使用區分內容的內建屬性

下列範例會傳回每個產品類別目錄的父系識別碼、索引鍵和名稱。 請注意這些屬性如何公開為量值。 這可讓您在執行查詢時檢視資料格集中的屬性,而不是在 SSMS 的成員屬性對話方塊中檢視。 您可以執行查詢,例如從已部署的 Cube 擷取成員中繼資料。

WITH
MEMBER [Measures].[Parent Member ID] AS
 [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("ID")
MEMBER [Measures].[Parent Member Key] AS
 [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("KEY")
MEMBER [Measures].[Parent Member Name] AS
 [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("Name")
SELECT
 {[Measures].[Parent Member ID], [Measures].[Parent Member Key], [Measures].[Parent Member Name] } on COLUMNS, 
 [Product].[Product Categories].AllMembers on ROWS
FROM [Adventure Works]

範例 2:不區分內容的內建屬性

下列範例是不區分內容之內建屬性的完整清單。 在 SSMS 中執行查詢之後,按一下個別成員可在成員屬性對話方塊中檢視屬性。

SELECT [Measures].[Sales Amount Quota] on COLUMNS,
[Employee].[Employees].members
DIMENSION PROPERTIES
 CATALOG_NAME , 
 CHILDREN_CARDINALITY ,
 CUSTOM_ROLLUP , 
 CUSTOM_ROLLUP_PROPERTIES , 
 DESCRIPTION , 
 DIMENSION_UNIQUE_NAME , 
 HIERARCHY_UNIQUE_NAME ,
 IS_DATAMEMBER , 
 IS_PLACEHOLDERMEMBER , 
 KEY0 ,
 LCID ,
 LEVEL_NUMBER ,
 LEVEL_UNIQUE_NAME ,
 MEMBER_CAPTION , 
 MEMBER_KEY , 
 MEMBER_NAME , 
 MEMBER_TYPE ,
 MEMBER_UNIQUE_NAME , 
 MEMBER_VALUE , 
 PARENT_COUNT , 
 PARENT_LEVEL , 
 PARENT_UNIQUE_NAME ,
 SKIPPED_LEVELS , 
 UNARY_OPERATOR , 
 UNIQUE_NAME  
 ON ROWS
FROM [Adventure Works]
WHERE [Employee].[Employee Department].[Department].&[Sales]

範例 3:將成員屬性當做結果集中的資料傳回

下列範例會針對指定的地區設定,傳回 Adventure Works Cube 中 Product 維度的產品類別目錄成員的已翻譯標題。

WITH 
MEMBER Measures.CategoryCaption AS Product.Category.CurrentMember.MEMBER_CAPTION
MEMBER Measures.SpanishCategoryCaption AS Product.Category.CurrentMember.Properties("LCID3082")
MEMBER Measures.FrenchCategoryCaption AS Product.Category.CurrentMember.Properties("LCID1036")
SELECT 
{ Measures.CategoryCaption, Measures.SpanishCategoryCaption, Measures.FrenchCategoryCaption } ON 0
,[Product].[Category].MEMBERS ON 1
FROM [Adventure Works]

請參閱

參考

PeriodsToDate (MDX)

Children (MDX)

Hierarchize (MDX)

Count (集合) (MDX)

Filter (MDX)

AddCalculatedMembers (MDX)

DrilldownLevel (MDX)

Properties (MDX)

PrevMember (MDX)

MDX 函數參考 (MDX)

概念

使用成員屬性 (MDX)