共用方式為


UPDATE CUBE 陳述式 (MDX)

更新 Cube 內指定的分葉或非分葉資料格的值,選擇性地跨相依分葉資料格,配置指定的非分葉頁資料格的值。

語法

UPDATE [ CUBE ] Cube_Name 
   SET 
            <update clause> 
           [, <update clause> ...n ]
  
<update clause> ::= 
      Tuple_Expression[.VALUE]= New_Value
      [ 
        NO_ALLOCATION
      | USE_EQUAL_ALLOCATION 
            | USE_EQUAL_INCREMENT 
            | USE_WEIGHTED_ALLOCATION [ BY Weight_Expression] 
           | USE_WEIGHTED_INCREMENT [ BY Weight_Expression]
      ]

引數

  • Cube_Name
    提供 Cube 名稱的有效字串。

  • Tuple_Expression
    傳回 Tuple 的有效多維度運算式 (MDX) 運算式。

  • New_Value
    有效的數值運算式。

  • Weight_Expression
    傳回介於 0 和 1 間之十進位值的有效多維度運算式 (MDX) 數值運算式。

備註

由 Tuple 運算式指定的資料格可以是多維度空間的任何有效資料格 (亦即,資料格不需要是分葉資料格)。但是,資料格必須以 Sum 彙總函式彙總,而且絕不能包括 Tuple 內用以識別資料格的導出成員。

將 UPDATE CUBE 陳述式視為會自動產生一連串個別資料格的副程式,將作業回寫到會積存到指定總和的分葉與非分葉資料格,可能會有幫助。

下表描述配置方法。

配置方法

描述

USE_EQUAL_ALLOCATION

提供給更新資料格的每個分葉資料格,將會根據以下運算式指派相等的值:

<leaf cell value> = 
<New Value> / Count(leaf cells that are contained in <tuple>)

USE_EQUAL_INCREMENT

提供給更新資料格的每個分葉資料格,將會根據以下運算式來變更:

<leaf cell value> = <leaf cell value> + 
(<New Value > - <existing value>) /
Count(leaf cells contained in <tuple>)

USE_WEIGHTED_ALLOCATION

提供給更新資料格的每個分葉資料格,將會根據以下運算式指派相等的值:

<leaf cell value> = < New Value> * Weight_Expression

USE_WEIGHTED_INCREMENT

提供給更新資料格的每個分葉資料格,將會根據以下運算式來變更:

<leaf cell value> = <leaf cell value> + 
(<New Value> - <existing value>)  * Weight_Expression

如果沒有指定加權運算式,UPDATE CUBE 陳述式會隱含使用下列運算式:

Weight_Expression = <leaf cell value> / <existing value>

加權運算式必須以零 (0) 到 1 之間的十進位值來表示。這個值指定您要指派給受配置影響之分葉資料格的配置值比例。用戶端應用程式設計人員負責建立的運算式,其積存彙總值將等於運算式配置值。

警告注意事項注意

用戶端應用程式必須同時考慮所有維度的配置,避免發生非預期的結果,包括不正確的積存值或不一致的資料。

對於交易用途,每個 UPDATE CUBE 配置都應該視為不可部分完成。這代表,如果有任何配置作業因任何原因而失敗,例如公式有誤,或安全性違規,整個 UPDATE CUBE 作業將會失敗。處理個別配置作業之前,會先製作資料的快照集,以確定計算結果正確。

警告注意事項注意

在包含整數的量值上使用時,累加的四捨五入變更會導致 USE_WEIGHTED_ALLOCATION 方法傳回不精確的結果。

重要事項重要事項

當更新的資料格未重疊時,Update Isolation Level 連接字串屬性可用來增強 UPDATE CUBE 的效能。

請參閱

參考

其他資源