使用 Cube 回寫 (MDX)

您可以使用 UPDATE CUBE 陳述式更新 Cube。您可以使用此陳述式,來更新具有特定值的 Tuple。若要有效地使用 UPDATE CUBE 陳述式更新 Cube,您必須了解陳述式的語法、可能發生的錯誤狀況,以及更新在 Cube 上所會產生的影響。

UPDATE CUBE 陳述式語法

以下語法描述 UPDATE CUBE 陳述式:

UPDATE [CUBE] <Cube_Name> SET <tuple>.VALUE = <value> [,<tuple>.VALUE = <value>...]
 [ USE_EQUAL_ALLOCATION | USE_EQUAL_INCREMENT |
  USE_WEIGHTED_ALLOCATION [BY <weight value_expression>] |
  USE_WEIGHTED_INCREMENT [BY <weight value_expression>] ] 

如果未為 Tuple 指定完整的一組座標,未指定的座標將會使用階層的預設成員。識別的 Tuple 必須參考以 Sum 函數彙總的資料格,而且絕不能使用導出成員做為資料格的其中一個座標。

您可以將 UPDATE CUBE 陳述式視為一個副程式,其會對不可部份完成的資料格產生一系列的個別回寫作業。然後,所有個別的回寫作業就會積存到指定總和。在以下範例中,UPDATE CUBE 陳述式會將 Drink 產品系列的 Unit Shipped 量值更新為零 (0):

UPDATE CUBE [Warehouse and Sales] SET ([Measures].[Units Shipped], [Product].[Product Family].[Product Family].&[Drink]) = 0 USE_NO_ALLOCATION

[!附註]

在 Microsoft SQL Server Analysis Services 中,您可以更新任何資料格。

重要事項重要事項

當更新的資料格未重疊時,Update Isolation Level 連接字串屬性可用來增強 UPDATE CUBE 的效能。如需詳細資訊,請參閱<ConnectionString>。

錯誤狀況

下表描述會導致回寫失敗及錯誤結果的狀況。

錯誤狀況

結果

更新包括相同維度但未能同時存在的成員。

更新將會失敗。Cube 空間將不會包含參考資料格。

更新包括來源為不帶正負號類型的量值。

更新將會失敗。遞增需要量值能夠接受負值。

更新包括非彙總總和的量值。

引發錯誤。

嘗試在 Subcube 進行更新。

引發錯誤。

Cube 變更的影響

以下變更將不會影響到回寫:

  • 處理 Cube、Cube 的量值群組,或 Cube 的維度。

  • 將屬性增加到任何維度。

  • 增加新的維度。

  • 刪除不包含回寫的維度。

  • 新增、修改或移除階層。

  • 增加新的量值。

不移除回寫資料,就無法做出以下變更:

  • 如果回寫中包含屬性在內,但要刪除屬性或其屬性階層。這包括明確地移除屬性或其屬性階層,或移除屬性的父維度。

  • 刪除回寫中包含的量值。

  • 新增一個屬性,而回寫中包含的階層沒有 (All) 層級。

  • 變更回寫中包含之維度的維度資料粒度。

請參閱

概念