使用多维数据集写回 (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
注意: |
---|
在 Microsoft SQL Server 2005 Analysis Services (SSAS) 中,可以更新任何单元。 |
错误条件
下表介绍了可能导致写回失败的原因以及这些错误的结果。
错误条件 | 结果 |
---|---|
更新包括同一维度中不能共存的成员。 |
更新将失败。多维数据集空间将不包含引用的单元。 |
更新包括作为无符号类型的度量值的来源的度量值。 |
更新将失败。增量需要度量值能够取负值。 |
更新包括执行非求和聚合的度量值。 |
已引发错误。 |
尝试更新子多维数据集。 |
已引发错误。 |
多维数据集更改的影响
下列更改将不会对写回产生影响:
- 处理多维数据集、多维数据集的度量值组或多维数据集的维度。
- 向任何维度中添加属性。
- 添加新维度。
- 删除不包含写回的维度。
- 添加、修改或删除层次结构。
- 添加新度量值。
只有删除写回数据才能进行下列更改:
- 删除属性或其属性层次结构(如果该属性包含在写回中)。这包括显式删除属性或其属性层次结构,或者删除属性的父维度。
- 删除写回中包含的度量值。
- 向写回中包含的维度添加不带 (All) 级别的属性。
- 更改写回中包含的维度的维度粒度。