Instruction UPDATE CUBE (MDX)

Mis à jour : 17 juillet 2006

Met à jour la valeur d'une cellule feuille ou non-feuille d'un cube, et alloue éventuellement la valeur d'une cellule non-feuille spécifiée à toutes les cellules feuilles dépendantes.

Syntaxe

UPDATE [ CUBE ] Cube_Name 
      SET 
            <update clause> 
           [, <update clause> ...n ]
  
<update clause> ::= 
      Tuple_Expression[.VALUE]= New_Value
      [ 
        NO_ALLOCATION
      | USE_EQUAL_ALLOCATION 
            | USE_EQUAL_INCREMENT 
            | USE_WEIGHTED_ALLOCATION [ BY Weight_Expression] 
           | USE_WEIGHTED_INCREMENT [ BY Weight_Expression]
      ]

Arguments

  • Cube_Name
    Chaîne valide qui précise le nom d'un cube.
  • Tuple_Expression
    Expression MDX (Multidimensional Expressions) valide qui retourne un tuple.
  • New_Value
    Expression numérique valide.
  • Weight_Expression
    Expression numérique MDX (Multidimensional Expressions) valide qui retourne une valeur décimale comprise entre 0 et 1.

Notes

La cellule spécifiée par l'expression de tuple peut être n'importe quelle cellule valide dans l'espace multidimensionnel (ce qui signifie que la cellule ne dispose d'aucune cellule feuille). Toutefois, la cellule doit être agrégée avec la fonction d'agrégation Sum et aucun membre calculé ne doit se trouver dans le tuple 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 différée de cellules individuelles sur des cellules feuilles et non-feuilles qui se cumuleront dans un total spécifié.

Le tableau ci-dessous décrit les méthodes d'allocation.

Méthode d'allocation Description

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 feuille qui contribue à la cellule mise à jour sera modifiée en fonction de 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 feuille qui contribue à la cellule mise à jour sera modifiée en fonction de l'expression suivante :

<leaf cell value> = <leaf cell value> + 
(<New Value> - <existing value>)  * Weight_Expression

Si aucune expression de poids n'est spécifiée, l'instruction UPDATE CUBE utilise implicitement l'expression suivante :

Weight_Expression = <leaf cell value> / <existing value>

Une expression de poids doit être exprimée sous forme de valeur décimale comprise entre zéro (0) et 1. Cette valeur spécifie le ratio de la valeur allouée que vous voulez affecter aux cellules feuilles affectées par l'allocation. Il est de la responsabilité du programmeur de l'application cliente de créer des expressions dont les valeurs agrégées de cumul seront égales à la valeur allouée de l'expression.

ms145488.Caution(fr-fr,SQL.90).gifAttention :
L'application cliente doit considérer simultanément l'allocation de toutes les dimensions afin d'éviter l'éventualité de résultats imprévus, notamment des valeurs de cumul incorrectes ou des données incohérentes.

Chaque allocation UPDATE CUBE doit être envisagée comme atomique pour les besoins des transactions. Ceci signifie que si l'une des opérations d'allocation échoue pour quelque raison que ce soit, par exemple une erreur de formule ou une violation de sécurité, l'ensemble de l'opération UPDATE CUBE échouera. Avant le calcul des opérations individuelles d'allocation, une capture instantanée des données est réalisée pour garantir la correction des calculs résultants.

ms145488.Caution(fr-fr,SQL.90).gifAttention :
Lorsqu'elle est utilisée sur une mesure contenant des entiers, la méthode USE_WEIGHTED_ALLOCATION peut retourner des résultats imprécis causés par des arrondis successifs.

Voir aussi

Autres ressources

Instructions MDX de manipulation de données (MDX)

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

17 juillet 2006

Contenu modifié :
  • Mise à jour de la syntaxe et des arguments à des fins d'éclaircissement.