Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La UPDATE instrucción CUBE se utiliza para escribir datos de vuelta a cualquier celda de un cubo que se agregue a su padre usando la agregación SUM. Para más explicaciones y un ejemplo, consulta "Entendiendo las asignaciones" en esta entrada del blog: Construcción de una aplicación de escritura con servicios de análisis (blog).
Syntax
UPDATE [ CUBE ] Cube_Name
SET
<update clause>
[, <update clause> ...n ]
<update clause> ::=
Tuple_Expression[.VALUE]= New_Value
[
USE_EQUAL_ALLOCATION
| USE_EQUAL_INCREMENT
| USE_WEIGHTED_ALLOCATION [ BY Weight_Expression]
| USE_WEIGHTED_INCREMENT [ BY Weight_Expression]
]
Arguments
Cube_Name
Una cadena válida que proporciona el nombre de un cubo.
Tuple_Expression
Una expresión válida de Expresiones Multidimensionales (MDX) que devuelve una tupla.
New_Value
Una expresión numérica válida.
Weight_Expression
Una expresión numérica válida de Expresiones Multidimensionales (MDX) que devuelve un valor decimal entre 0 y 1.
Remarks
Puedes actualizar el valor de una celda hoja o no hoja especificada en un cubo, asignando opcionalmente el valor de una celda no hoja especificada entre celdas hoja dependientes. La celda especificada por la expresión de la tupla puede ser cualquier celda válida en el espacio multidimensional (es decir, la celda no tiene por qué ser una célula hoja). Sin embargo, la celda debe agregarse con la función agregada Suma y no debe incluir un miembro calculado en la tupla que se utiliza para identificar la celda.
Puede ser útil pensar en la UPDATE instrucción CUBE como una subrutina que generará automáticamente una serie de operaciones de escritura de celdas individuales para celdas hoja y no hoja, que se acumularán en una suma especificada.
A continuación se describe los métodos de asignación.
USE_EQUAL_ALLOCATION: A cada celda hoja que contribuya a la celda actualizada se le asignará un valor igual en función de la siguiente expresión.
<leaf cell value> =
<New Value> / Count(leaf cells that are contained in <tuple>)
USE_EQUAL_INCREMENT: Cada célula hoja que contribuya a la celda actualizada será modificada según la siguiente expresión.
<leaf cell value> = <leaf cell value> +
(<New Value > - <existing value>) /
Count(leaf cells contained in <tuple>)
USE_WEIGHTED_ALLOCATION: A cada celda hoja que contribuya a la celda actualizada se le asignará un valor igual basado en la siguiente expresión.
<leaf cell value> = < New Value> * Weight_Expression
USE_WEIGHTED_INCREMENT: Cada célula hoja que contribuya a la celda actualizada será modificada según la siguiente expresión.
<leaf cell value> = <leaf cell value> +
(<New Value> - <existing value>) * Weight_Expression
Si no se especifica una expresión de peso, la UPDATE sentencia CUBE utiliza implícitamente la siguiente expresión.
Weight_Expression = <leaf cell value> / <existing value>
Una expresión de peso debe expresarse como un valor decimal entre cero (0) y 1. Este valor especifica la proporción entre el valor asignado que quieres asignar a las celdas de hojas afectadas por la asignación. El programador de aplicaciones cliente tiene la responsabilidad de crear expresiones cuyos valores agregados de rollup sean iguales al valor asignado de la expresión.
Caution
La aplicación cliente debe considerar la asignación de todas las dimensiones simultáneamente para evitar posibles resultados inesperados, incluyendo valores de agrupación incorrectos o datos inconsistentes.
Cada UPDATE asignación de CUBE debe considerarse atómica para fines transaccionales. Esto significa que si cualquiera de las operaciones de asignación falla por cualquier motivo, como un error en una fórmula o una violación de seguridad, toda UPDATE la operación CUBE fallará. Antes de procesar los cálculos de las operaciones de asignación individuales, se toma una instantánea de los datos para asegurar que los cálculos resultantes sean correctos.
Caution
Cuando se utiliza sobre una medida que contiene enteros, el método USE_WEIGHTED_ALLOCATION puede devolver resultados imprecisos causados por cambios incrementales de redondeo.
Importante
Cuando las celdas actualizadas no se solapan, la propiedad de cadena de conexión de nivel de aislamiento de actualización puede utilizarse para mejorar el rendimiento de UPDATE CUBE.
Véase también
ConnectionString
Sentencias de Manipulación de Datos MDX (MDX)