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.
S’applique à :
SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
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 se cumulent ensuite dans la somme spécifiée.
Note
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 la commande UPDATE CUBE. Pour plus d’informations, consultez ConnectionString.
Example
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 d’écriture différée dans le dossier d’écriture différée. 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 "UPDATE CUBE" pour inscrire 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 devez 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 y compris entre les utilisateurs et les sessions, traitez la table de writeback. 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 les causes d'échec des écritures de retour et le résultat de ces erreurs.
| Condition d’erreur | Résultat |
|---|---|
| La mise à jour inclut des membres de la même dimension qui n'existent pas ensemble. | La mise à jour échoue. L’espace de cube ne contient pas la cellule référencée. |
| La mise à jour inclut une mesure provenant d'une mesure d’un 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 pas d’effet sur une écriture en différé :
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 rétroé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 (Tout) à une dimension incluse dans le writeback.
Modification de la granularité de dimension pour une dimension incluse dans le writeback.