使用多维数据集写回 (MDX)

可以使用 UPDATE CUBE 语句更新多维数据集。此语句允许您用特定值更新元组。若要有效地使用 UPDATE 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>] ] 

如果未为元组指定所有坐标,未指定的坐标将使用层次结构的默认成员。所标识的元组必须引用使用 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
注意注意

在 MicrosoftSQL ServerAnalysis Services 中,可以更新任何单元。

重要说明重要提示

如果更新的单元不互相重叠,则 Update Isolation Level 连接字符串属性可用于提高 UPDATE CUBE 的性能。有关详细信息,请参阅 ConnectionString

错误条件

下表介绍了可能导致写回失败的原因以及这些错误的结果。

错误条件

结果

更新包括同一维度中不能共存的成员。

更新将失败。多维数据集空间将不包含被引用单元。

更新包括作为无符号类型的度量值的来源的度量值。

更新将失败。增量需要度量值能够取负值。

更新包括执行非求和聚合的度量值。

已引发错误。

尝试更新子多维数据集。

已引发错误。

多维数据集更改的影响

下列更改将不会对写回产生影响:

  • 处理多维数据集、多维数据集的度量值组或多维数据集的维度。

  • 向任何维度中添加属性。

  • 添加新维度。

  • 删除不包含写回的维度。

  • 添加、修改或删除层次结构。

  • 添加新度量值。

只有删除写回数据才能进行下列更改:

  • 删除属性或其属性层次结构(如果该属性包含在写回中)。这包括显式删除属性或其属性层次结构,或者删除属性的父维度。

  • 删除写回中包含的度量值。

  • 向写回中包含的维度添加不带 (All) 级别的属性。

  • 更改写回中包含的维度的维度粒度。

请参阅

概念