共用方式為


插入、更新和卸除成員 (XMLA)

您可以在 XML for Analysis (XMLA) 中使用 InsertUpdateDrop 命令,分別插入、更新或刪除已啟用寫入維度的成員。 如需啟用寫入維度的詳細資訊,請參閱 已啟用寫入的維度

插入新成員

Insert 命令會將新的成員插入可寫入維度中的特定屬性。

在建構 Insert 命令之前,您應該有下列可用於插入新成員的資訊:

  • 要在其中插入新成員的維度。

  • 要在其中插入新成員的維度屬性。

  • 新成員的名稱,包括任何適用的名稱翻譯。

  • 新成員的索引鍵。 如果屬性使用複合索引鍵,索引鍵可能需要多個值。

  • 並未像其他的屬性已實作在維度中,但適用的任何屬性值。 這樣的屬性包括一元運算、翻譯、自訂積存、自訂積存屬性以及略過的層級。

Insert 命令只使用兩個屬性:

  • Object屬性,其中包含要插入成員之維度的物件參考。 物件參考包含資料庫識別碼、Cube 識別碼以及維度的維度識別碼。

  • Attributes屬性,其中包含一或多個Attribute元素,用來識別要插入成員的屬性。 每個 Attribute 元素可識別屬性,並為要加入識別屬性的單一成員提供名稱、值、翻譯、一元運算子、自訂積存、自訂積存屬性以及略過的層級。

    注意

    Attribute 元素的所有屬性都必須包含在內。 否則,系統可能會發生錯誤。

更新現有的成員

Update 命令會根據與其他屬性中其他成員的關係,在可寫入的維度之指定屬性中更新現有的成員。 Update 命令可以將成員移到維度所含的階層中之其他層級,而且可用以重新設定父屬性所定義的父子式階層之結構。

在建構 Update 命令之前,您應該有下列可用於更新成員的資訊:

  • 要在其中更新現有成員的維度。

  • 要在其中更新現有成員的維度屬性。

  • 現有成員的索引鍵。 如果屬性使用複合索引鍵,索引鍵可能需要多個值。

  • 並未像其他的屬性已實作在維度中,但適用的任何屬性值。 這樣的屬性包括一元運算、翻譯、自訂積存、自訂積存屬性以及略過的層級。

Update 命令只使用三個必要的屬性:

  • Object 屬性,包含要在其中更新成員之維度的物件參考。 物件參考包含資料庫識別碼、Cube 識別碼以及維度的維度識別碼。

  • Attributes 屬性,包含一或多個 Attribute 元素,以識別要在其中更新成員的屬性。 Attribute 元素可識別屬性,並為識別屬性要更新的單一成員提供名稱、值、翻譯、一元運算子、自訂積存、自訂積存屬性以及略過的層級。

    注意

    Attribute 元素的所有屬性都必須包含在內。 否則,系統可能會發生錯誤。

  • Where屬性,其中包含一或多個 Attribute 元素,這些元素會限制要更新成員的屬性。 Where 屬性對於將 Update 命令限制在成員的特定執行個體來說十分重要。 Where如果未指定 屬性,則會更新指定成員的所有實例。 例如,您要將三個客戶的城市名稱從 Redmond 變更為 Bellevue。 若要變更城市名稱,您必須提供 Where 屬性以識別 Customer 屬性中應該變更的三個 City 屬性成員。 如果您沒有提供這個 Where 屬性,則城市名稱目前為 Redmond 的每個客戶,在執行 Update 命令之後,其城市名稱都將變成 Bellevue。

    注意

    除了新成員之外,Update 命令只能為不包含在 Where 子句中的屬性更新屬性索引鍵值。 例如,更新客戶時無法更新城市名稱,否則會為所有客戶變更城市名稱。

更新父屬性中的成員

若要支援父屬性, Update 則為選擇性 MoveWithDescendants MovewithDescedants屬性的命令。 將 MoveWithDescendants 屬性設定為 true,以指定在該父成員識別碼變更時,父成員的下階也應該隨父成員一起移動。 如果這個值是設定為 false,移動父成員會造成該父成員的直接下階升級為父成員先前所在的層級。

在父屬性中更新成員時,Update 命令無法更新其他屬性中的成員。

卸除現有的成員

在建構 Drop 命令之前,您應該有下列可用於卸除成員的資訊:

  • 要在其中卸除現有成員的維度。

  • 要在其中卸除現有成員的維度屬性。

  • 要卸除之現有成員的索引鍵。 如果屬性使用複合索引鍵,索引鍵可能需要多個值。

Drop 命令只使用兩個必要的屬性:

  • Object 屬性,包含要在其中卸除成員之維度的物件參考。 物件參考包含資料庫識別碼、Cube 識別碼以及維度的維度識別碼。

  • Where 屬性包含一或多個 Attribute 元素,會限制要在其中刪除成員的屬性。 Where 屬性對於將 Drop 命令限制在成員的特定執行個體來說十分重要。 如果未指定 Where命令,指定成員的所有執行個體都會卸除。 例如,您要從 Redmond 卸除三個客戶。 若要卸除這些客戶,您必須提供 Where 屬性以識別 Customer 屬性中要移除的三個成員,以及要從 City 屬性之 Redmond 成員中移除的三個客戶。 如果 Where 屬性只指定 City 屬性的 Redmond 成員,則 Drop 命令會卸除與 Redmond 關聯的每個客戶。 如果 Where 屬性只在 Customer 屬性中指定三個成員,則 Drop 命令會完全刪除這三個客戶。

    注意

    包括在 Attribute 命令中的 Drop 元素必須只包含 AttributeNameKeys 屬性。 否則,系統可能會發生錯誤。

卸除父屬性中的成員

設定 DeleteWithDescendants 屬性工作表示父成員的子系也應該與父成員一起刪除。 如果這個值是設定為 false,則會改將父成員的直接下階升級為父成員先前所在的層級。

重要

使用者只要擁有父成員的刪除權限,即可同時刪除父成員及其子階。 使用者不需要子階的刪除權限。

另請參閱

Drop 元素 (XMLA)
Insert 元素 (XMLA)
Update 元素 (XMLA)
定義和識別物件 (XMLA)
在 Analysis Services 中使用 XMLA 進行開發