共用方式為


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

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

插入新成員

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

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

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

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

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

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

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

Insert命令只會使用兩個屬性:

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

  • 屬性(Attribute)屬性(Attribute),其中包含一個或多個Attribute元素,用來識別要在其中插入成員的屬性。 每個 屬性 專案都會識別屬性,並為單一成員提供名稱、值、翻譯、一元運算子、自訂匯總、自訂匯總屬性和略過的層級,以新增至識別的屬性。

    注意

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

更新現有的成員

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

在建立 Update 命令之前,您應該有下列可供要更新之成員的資訊:

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

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

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

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

Update命令只會採用三個必要屬性:

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

  • 屬性(Attribute)屬性(Attribute),其中包含一個或多個Attribute元素,用來識別要更新成員的屬性。 Attribute元素會識別屬性,並為識別的屬性提供名稱、值、翻譯、一元運算子、自訂匯總、自訂匯總屬性和略過的層級,以更新單一成員。

    注意

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

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

    注意

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

更新父屬性中的成員

為了支援父屬性, Update 命令會提供選擇性的 MoveWithDescendantsMovewithDescedants 屬性。 將 [ MoveWithDescendants ] 屬性設定為 [true],表示當父成員的識別碼變更時,父成員的下階也應該隨父成員一起移動。 如果這個值是設定為 false,移動父成員會造成該父成員的直接下階升級為父成員先前所在的層級。

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

卸除現有的成員

在建立 Drop 命令之前,您應該有下列可供卸載成員的資訊:

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

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

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

Drop命令只接受兩個必要屬性:

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

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

    注意

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

卸除父屬性中的成員

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

重要

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

另請參閱

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