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.
Puede actualizar un cubo mediante la instrucción UPDATE CUBE . Esta instrucción le permite actualizar una tupla con un valor específico. Para usar eficazmente la instrucción UPDATE CUBE para actualizar un cubo, debe comprender la sintaxis de la instrucción , las condiciones de error que pueden producirse y el efecto que pueden tener las actualizaciones en un cubo.
Sintaxis de instrucción UPDATE CUBE
La sintaxis siguiente describe la instrucción 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>] ]
Si no se especifica un conjunto completo de coordenadas para la tupla, las coordenadas no especificadas usarán el miembro predeterminado de la jerarquía. La tupla identificada debe hacer referencia a una celda que se agrega con la función Sum y no debe usar un miembro calculado como una de las coordenadas de la celda.
Puede considerar la instrucción UPDATE CUBE como una subrutina que genera una serie de operaciones de reescritura individuales en celdas atómicas. Todas estas operaciones de reescritura individuales se acumulan en la suma especificada.
Nota:
Cuando las celdas actualizadas no se superponen, se puede usar la propiedad de cadena de conexión Update Isolation Level para mejorar el rendimiento de UPDATE CUBE. Para obtener más información, consulte ConnectionString.
Ejemplo
Puede probar UPDATE CUBE mediante el grupo de medida Sales Targets del cubo Adventure Works. Este grupo de medida consta de medidas agregadas por SUM, que es un requisito para UPDATE CUBE.
Active la reescritura para el grupo de medidas Objetivos de ventas en la base de datos Adventure Works. En Management Studio, haga clic con el botón derecho en un grupo de medida, seleccione Opciones de reescritura y elija Habilitar reescritura.
Debería ver una nueva tabla de writeback en la carpeta Writeback. El nombre de la tabla es WriteTable_Fact Cuota de ventas.
Abra una ventana de consulta MDX. Ejecute la siguiente instrucción select para ver el valor original:
SELECT [Measures].[Sales Amount Quota] on 0 , [Employee].[Employee Department].[Title].&[Sales Representative].children on 1 FROM [Adventure Works]Debería ver cuotas de importe de ventas para cada representante.
Ejecute la instrucción update cube para volver a escribir un nuevo valor. En este ejemplo, se establece la cuota de la cantidad de ventas en 0. Dado que el nuevo valor es 0, no especifique un método de asignación.
UPDATE CUBE [Adventure Works] SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 0Vuelva a ejecutar la instrucción SELECT. Ahora debería aparecer un cero para las cuotas.
El valor de retroescritura está restringido a la sesión actual. Para conservar el valor entre usuarios y sesiones, procese la tabla de reescritura. En Management Studio, haga clic con el botón derecho en WriteTable_Fact Cuota de ventas y elija Procesar.
Para especificar un método de asignación, el nuevo valor debe ser mayor que cero. En este ejemplo, el nuevo valor de Cuota de importe de ventas es de dos millones y el método de asignación distribuye la cantidad en todos los representantes de ventas.
UPDATE CUBE [Adventure Works]
SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 2000000
USE_EQUAL_ALLOCATION
Condiciones de error
En la tabla siguiente se describe lo que puede hacer que se produzcan errores en las reescrituras y el resultado de esos errores.
| Condición de error | Resultado |
|---|---|
| La actualización incluye miembros de la misma dimensión que no existen entre sí. | Se producirá un error en la actualización. El espacio del cubo no contendrá la celda a la que se hace referencia. |
| La actualización incluye una medida obtenida de una medida de un tipo no firmado. | Se producirá un error en la actualización. Los incrementos requieren que la medida pueda tomar un valor negativo. |
| La actualización incluye una medida que agrega algo diferente a la suma. | Se produce un error. |
| Se intentó realizar una actualización en un subcubo. | Se produce un error. |
Efecto de las modificaciones del cubo
Los siguientes cambios no tendrán efecto en una escritura de retorno:
Procesamiento de un cubo, los grupos de medida del cubo o las dimensiones del cubo.
Agregar atributos a cualquier dimensión.
Agregar una nueva dimensión.
Eliminar una dimensión que no incluya la escritura de retorno.
Agregar, modificar o quitar una jerarquía.
Agregar una nueva medida.
No se pueden realizar los siguientes cambios sin eliminar los datos de reescritura.
Eliminar un atributo o su jerarquía de atributos, si el atributo se incluye en la escritura diferida. Esto incluye quitar explícitamente el atributo, o su jerarquía de atributos, o quitar la dimensión primaria del atributo.
Eliminar una medida incluida en el registro en diferido.
Añadir un atributo sin nivel
(All)a una dimensión incluida en la escritura en reversa.Cambiar la granularidad de dimensión de la dimensión incluida en el registro.