Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’instruction UPDATE CUBE est utilisée pour réécrire des données à toute cellule d’un cube qui agrége à son parent en utilisant l’agrégation SUM. Pour plus d’explications et un exemple, voir « Comprendre les allocations » dans cet article de blog : Construire une application d’écriture avec des services d’analyse (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
Une chaîne valide qui donne le nom d’un cube.
Tuple_Expression
Une expression valide des expressions multidimensionnelles (MDX) qui retourne un tuple.
New_Value
Une expression numérique valide.
Weight_Expression
Une expression numérique valide des Expressions Multidimensionnelles (MDX) qui renvoie une valeur décimale comprise entre 0 et 1.
Remarks
Vous pouvez mettre à jour la valeur d’une cellule feuille ou non-feuille spécifiée dans un cube, en allouant éventuellement la valeur d’une cellule non-feuille spécifiée entre des cellules feuilles dépendantes. La cellule spécifiée par l’expression du tuple peut être n’importe quelle cellule valide dans l’espace multidimensionnel (c’est-à-dire que la cellule n’a pas besoin d’être une cellule feuille). Cependant, la cellule doit être agrégée avec la fonction agrégée Somme et ne doit pas inclure un membre calculé dans le tuplet utilisé pour identifier la cellule.
Il peut être utile de considérer l’instruction UPDATE CUBE comme une sous-routine qui générera automatiquement une série d’opérations d’écriture individuelle vers des cellules feuilles et non-feuilles, qui s’assembleront en une somme spécifiée.
Voici une description des méthodes d’attribution.
USE_EQUAL_ALLOCATION : Chaque cellule feuille qui contribue à la cellule mise à jour se verra attribuer une valeur égale basée sur l’expression suivante.
<leaf cell value> =
<New Value> / Count(leaf cells that are contained in <tuple>)
USE_EQUAL_INCREMENT : Chaque cellule foliaire qui contribue à la cellule mise à jour sera modifiée selon l’expression suivante.
<leaf cell value> = <leaf cell value> +
(<New Value > - <existing value>) /
Count(leaf cells contained in <tuple>)
USE_WEIGHTED_ALLOCATION : Chaque cellule feuille qui contribue à la cellule mise à jour se verra attribuer une valeur égale basée sur l’expression suivante.
<leaf cell value> = < New Value> * Weight_Expression
USE_WEIGHTED_INCREMENT : Chaque cellule foliaire qui contribue à la cellule mise à jour sera modifiée selon l’expression suivante.
<leaf cell value> = <leaf cell value> +
(<New Value> - <existing value>) * Weight_Expression
Si une expression de poids n’est pas spécifiée, l’instruction UPDATE CUBE utilise implicitement l’expression suivante.
Weight_Expression = <leaf cell value> / <existing value>
Une expression de pondération doit être exprimée par une valeur décimale comprise entre zéro (0) et 1. Cette valeur spécifie le rapport entre la valeur allouée que vous souhaitez attribuer aux cellules feuilles affectées par cette allocation. Le programmeur client a la responsabilité de créer des expressions dont les valeurs agrégées de rollup seront égales à la valeur allouée de l’expression.
Caution
L’application cliente doit prendre en compte l’allocation simultanée de toutes les dimensions afin d’éviter d’éventuels résultats inattendus, y compris des valeurs de rollup incorrectes ou des données incohérentes.
Chaque UPDATE allocation CUBE doit être considérée comme atomique à des fins transactionnelles. Cela signifie que si l’une des opérations d’allocation échoue pour une raison quelconque, comme une erreur dans une formule ou une violation de sécurité, l’ensemble UPDATE de l’opération CUBE échouera. Avant que les calculs des opérations d’allocation individuelles ne soient traités, un instantané des données est pris pour s’assurer que les calculs résultats sont corrects.
Caution
Lorsqu’elle est utilisée sur une mesure contenant des entiers, la méthode USE_WEIGHTED_ALLOCATION peut donner des résultats imprécis causés par des changements d’arrondi incrémental.
Important
Lorsque les cellules mises à jour ne se chevauchent pas, la propriété de chaîne de connexion Update Isolation Level peut être utilisée pour améliorer les performances de UPDATE CUBE.
Voir aussi
ConnectionString
Déclarations de manipulation de données MDX (MDX)