Partager via


Messages d’erreur lorsque vous essayez de traiter une base de données ou un cube

Cet article vous aide à résoudre le problème où vous recevez des messages d’erreur lorsque vous essayez de traiter une base de données ou un cube dans SQL Server Analysis Services.

Version du produit d’origine : SQL Server
Numéro de base de connaissances d’origine : 922673

Symptômes

Dans SQL Server Analysis Services, vous essayez de traiter une base de données ou un cube à l’aide de SQL Server Business Intelligence Development Studio ou de SQL Server Management Studio. Toutefois, l’opération de processus échoue et vous recevez les messages d’erreur suivants :

  • Message d’erreur 1

    Erreurs dans le moteur: de stockage OLAP La clé d’attribut est introuvable: TableName: , Column: ColumnName1, Value1: . Table TableName: , Column: ColumnName2, Valeur : Valeur2.

  • Message d’erreur 2

    Erreurs dans le moteur de stockage OLAP : l’enregistrement a été ignoré car la clé d’attribut n’a pas été trouvée. Attribut : attribut généré X de dimension : DimensionName à partir de la base de données : DatabaseName, Cube : CubeName, Measure Group : MeasureGroupName, Partition : PartitionName, Record : RecordNumber.

Cause

Ce problème se produit parce qu’une table de faits pour un cube a un ou plusieurs enregistrements qui contiennent une clé d’attribut et que cette clé d’attribut n’existe pas dans la table de dimension correspondante. Ce comportement peut se produire lorsque vous n’avez pas traité la dimension correspondante avant de traiter le cube ou lorsque les tables sous-jacentes ont réellement des données incompatibles. Si le champ « Valeur : » du message n’a aucun nombre après celui-ci, la table de faits doit contenir des données Null.

Résolution

Pour résoudre ce problème, vous devez vérifier que votre source de données pointe vers les emplacements suivants :

  • Instance de source de données sous-jacente correcte, telle qu’une instance de SQL Server.
  • Base de données correcte.

Ensuite, corrigez les enregistrements sous-jacents qui contiennent la clé d’attribut problématique. Pour cela, appliquez l’une des méthodes suivantes :

Utiliser une clé d’attribut existante

Mettez à jour les enregistrements pour utiliser une clé d’attribut existante en exécutant une instruction comme suit :

Update <TableName> set <KeyName>=<ExistingKeyValue> where <KeyName>=<BadKeyValue> or <KeyName> IS NULL

Mettre en correspondance les valeurs de clé dans la table de faits

Insérez des lignes supplémentaires dans la table de dimension pour qu’elles correspondent aux valeurs de clé de la table de faits. Si des valeurs Null existent, utilisez l’une des méthodes suivantes :

  • Remplacez les valeurs Null par les valeurs réelles.

  • Configurez la dimension ou les dimensions pour avoir un membre inconnu en définissant les propriétés et UnknownMemberName les UnknownMember propriétés. Vous pouvez rendre le membre inconnu visible ou masqué en fonction de vos besoins.

  • Utilisez tous les paramètres suivants dans la boîte de dialogue Modifier les paramètres :

    • Définissez la KeyErrorAction propriété sur ConvertToUnknown.
    • Définissez la NullKeyNotAllowed propriété sur IgnoreError ou ReportAndContinue.
    • Définissez la NullKeyConvertedtoUnknown propriété sur IgnoreError ou ReportAndContinue.
    • Cliquez sur Ignorer le nombre d’erreurs.

    Vous pouvez définir ces paramètres à l’échelle de l’instance ou utiliser une configuration personnalisée pour chaque dimension.

Ignorer l’erreur

Si vous souhaitez traiter la base de données ou le cube sans corriger les données, vous pouvez définir la configuration d’erreur pour l’opération de processus afin d’ignorer l’erreur. Vous ne devez le faire qu’en tant que solution de contournement temporaire lorsque vous corrigez les données sous-jacentes. Sinon, vous pouvez recevoir des résultats inattendus de vos requêtes MDX (Multidimensional Expressions). Pour ignorer les erreurs, procédez comme suit :

  1. Dans la boîte de dialogue Traiter la base de données -DatabaseName**** ou la boîte de dialogue Process Cube -CubeName***, cliquez sur Modifier les paramètres.
  2. Dans la boîte de dialogue Modifier les paramètres , cliquez sur l’onglet Erreurs de touche dimension.
  3. Cliquez sur Utiliser la configuration d’erreur personnalisée.
  4. Dans la liste Clé introuvable, modifiez la valeur par défaut du rapport et continuez à ignorer l’erreur.
  5. Cliquez sur Ignorer le nombre d’erreurs.
  6. Cliquez sur OK pour fermer la boîte de dialogue Modifier les paramètres .
  7. Cliquez sur OK pour traiter la base de données ou le cube.

En outre, vous pouvez définir la configuration d’erreur du cube ou de la partition pour ignorer l’erreur. Pour plus d’informations, consultez Configuration des erreurs pour le traitement du cube, de la partition et de la dimension.

État

Ce comportement est normal.