共用方式為


定義預設成員

當查詢中未包含屬性階層時,會使用屬性階層的預設成員來評估表達式。 每當查詢中包含一個屬性階層或用戶階層,且該階層包含用於來源屬性階層的屬性時,預設成員將被忽略。 這是因為使用查詢中指定的成員。

屬性階層的預設成員是藉由指定屬性成員做為 DefaultMember 屬性階層的屬性值來設定。 您可以在維度設計師的 [維度結構] 索引標籤上,或在 SQL Server Data Tools 中 Cube 設計師的 [計算] 索引卷標上的 Cube 計算腳本中設定此屬性。 您也可以在定義維度安全性時,在 [維度數據] 索引卷標上指定 DefaultMember 安全性角色的屬性(覆寫維度上設定的預設成員)。 若要避免名稱解析問題,請在下列情況下,在 Cube 的 MDX 腳本中定義預設成員:如果 Cube 參考資料庫維度一次以上,如果 Cube 中的維度名稱與資料庫中的維度不同,或您想要在不同的 Cube 中有不同的預設成員。

當屬性未包含在查詢中時,會使用屬性上的預設成員來評估表達式。 屬性的預設成員是由 DefaultMember 屬性上的 屬性所指定。 每當維度階層包含在查詢中時,就會忽略階層中對應至層級之屬性的所有默認成員。 如果查詢中未包含維度的階層,則預設成員會用於維度中的所有屬性。

未指定預設成員時解析預設成員

如果未為屬性階層指定預設成員,而且屬性階層是可匯總的( IsAggregatable 屬性上的 屬性設定為 True),則 (All) 成員是預設成員。 如果未指定預設成員,而且屬性階層無法匯總( IsAggregatable 屬性上的 屬性設定為 False),則會從屬性階層的最上層選取預設成員。

指定預設成員

在 Microsoft SQL Server Analysis Services 中,每個維度中的屬性都有預設成員,您可以使用該屬性的 DefaultMember 屬性來指定。 如果查詢中未包含屬性,則會使用此設定來評估表達式。 如果查詢在維度中指定階層,則會忽略階層中屬性的預設成員。 如果查詢未在維度中指定階層, DefaultMember 維度屬性的設定就會生效。

DefaultMember如果屬性的設定是空白的,且其IsAggregatable屬性設定為 True,則預設成員為 All 成員。 IsAggregatable如果 屬性設定為 False,則預設成員是第一個可見層級的第一個成員。

屬性 DefaultMember 的設定會套用至屬性參與的每個階層。 您無法針對維度中的不同階層使用不同的設定。 例如,如果 [1998] 成員是 [Year] 屬性的預設成員,此設定會套用至維度中的每個階層。 在此案例中,DefaultMember 的設定不能在一個階層中是 [1998],而在另一個階層中是 [1997]。

如果您在階層中未自然匯總的特定層級定義預設成員,則必須在階層中高於該層級的所有層級中定義預設成員。 例如,在階層 All-Countries-Climate 中,除非您為國家/地區定義預設成員,否則您無法為 Climate 定義預設成員。 未能這麼做會導致查詢時出現錯誤。

當階層中的層級自然匯總時,您可以定義階層中任何屬性的預設成員,而不考慮階層中的其他屬性。 例如,在階層 Country/Region-Province-City 中,例如 [City].[蒙特利爾],您可以定義城市的預設成員,而不需定義 State 或 Country/Region 的預設成員。

另請參閱

設定屬性階層的 [全部] 層級