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.
Vous mettez à jour un cube à l’aide de l’instruction UPDATE CUBE . Cette instruction vous permet de mettre à jour un tuple avec une valeur spécifique. Pour utiliser efficacement l’instruction UPDATE CUBE pour mettre à jour un cube, vous devez comprendre la syntaxe de l’instruction, les conditions d’erreur qui peuvent se produire et l’impact que les mises à jour peuvent avoir sur un cube.
Syntaxe de l’instruction UPDATE CUBE
La syntaxe suivante décrit l’instruction 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 un ensemble complet de coordonnées n’est pas spécifié pour le tuple, les coordonnées non spécifiées utilisent le membre par défaut de la hiérarchie. Le tuple identifié doit faire référence à une cellule agrégée avec la fonction Sum et ne doit pas utiliser un membre calculé comme l’une des coordonnées de la cellule.
Vous pouvez considérer l’instruction UPDATE CUBE comme une sous-routine qui génère une série d’opérations d’écriture différée individuelles dans des cellules atomiques. Toutes ces opérations d’écriture différée individuelles s'agrègent ensuite dans la somme spécifiée.
Remarque
Lorsque les cellules mises à jour ne se chevauchent pas, la Update Isolation Level propriété de chaîne de connexion peut être utilisée pour améliorer les performances pour UPDATE CUBE. Pour plus d’informations, consultez ConnectionString.
Exemple :
Vous pouvez tester UPDATE CUBE à l’aide du groupe de mesures Sales Targets dans le cube Adventure Works. Ce groupe de mesures se compose de mesures agrégées par SUM, qui est une exigence pour UPDATE CUBE.
Activez l’écriture différée pour le groupe de mesures Sales Targets dans la base de données Adventure Works. Dans Management Studio, cliquez avec le bouton droit sur un groupe de mesures, pointez sur Options d’écriture différée, choisissez Activer l’écriture différée.
Vous devez voir une nouvelle table de restitution dans le dossier de restitution. Le nom de la table est WriteTable_Fact Quota de ventes.
Ouvrez une fenêtre de requête MDX. Exécutez l’instruction select suivante pour afficher la valeur d’origine :
SELECT [Measures].[Sales Amount Quota] on 0 , [Employee].[Employee Department].[Title].&[Sales Representative].children on 1 FROM [Adventure Works]Vous devez voir les quotas de montant des ventes pour chaque représentant.
Exécutez l'instruction du cube de mise à jour pour actualiser une nouvelle valeur. Dans cet exemple, nous définissons le quota du montant des ventes sur 0. Étant donné que la nouvelle valeur est 0, ne spécifiez pas de méthode d’allocation.
UPDATE CUBE [Adventure Works] SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 0Réexécutez l’instruction SELECT. Vous devriez maintenant voir zéro pour les quotas.
La valeur d’écriture différée est limitée à la session en cours. Pour conserver la valeur entre les utilisateurs et les sessions, traitez la table de réécriture. Dans Management Studio, cliquez avec le bouton droit sur WriteTable_Fact Quota de ventes, puis choisissez Processus.
Pour spécifier une méthode d’allocation, la nouvelle valeur doit être supérieure à zéro. Dans cet exemple, la nouvelle valeur du quota de montant des ventes est de deux millions et la méthode d’allocation distribue le montant à tous les représentants des ventes.
UPDATE CUBE [Adventure Works]
SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 2000000
USE_EQUAL_ALLOCATION
Conditions d’erreur
Le tableau suivant décrit à la fois ce qui peut entraîner l’échec des réimputations et les conséquences de ces erreurs.
| Condition d'erreur | Résultat |
|---|---|
| La mise à jour inclut des membres de la même dimension qui n'existent pas avec les autres. | La mise à jour échoue. L’espace de cube ne contient pas la cellule référencée. |
| La mise à jour inclut une mesure issue d'une mesure de type non signé. | La mise à jour échoue. Les incréments nécessitent que la mesure puisse prendre une valeur négative. |
| La mise à jour inclut une mesure qui agrège autre que la somme. | Une erreur est générée. |
| La mise à jour a été testée sur un sous-cube. | Une erreur est générée. |
Impact des modifications du cube
Les modifications suivantes n’auront aucun effet sur un retour en arrière :
Traitement d’un cube, des groupes de mesures du cube ou des dimensions du cube.
Ajout d’attributs à n’importe quelle dimension.
Ajout d’une nouvelle dimension.
Suppression d’une dimension qui n’inclut pas l’écriture différée.
Ajout, modification ou suppression d’une hiérarchie.
Ajout d’une nouvelle mesure.
Les modifications suivantes ne peuvent pas être apportées sans supprimer les données de retour en écriture :
Suppression d’un attribut ou de sa hiérarchie d’attributs si l’attribut est inclus dans l’écriture différée. Cela inclut la suppression explicite de l’attribut ou de sa hiérarchie d’attributs, ou la suppression de la dimension parente de l’attribut.
Suppression d’une mesure incluse dans l’écriture différée.
Ajout d’un attribut sans niveau
(All)à une dimension incluse dans le retour d'écriture.Modification de la granularité de dimension pour une dimension incluse dans l’écriture de retour.