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.
Cet article vous aide à résoudre le problème qui se produit lorsque vous traitez une dimension dans SQL Server Analysis Service.
Version du produit d’origine : SQL Server
Numéro de base de connaissances d’origine : 2002757
Symptômes
Dans SQL Server Analysis Service, le traitement de dimension et vous pouvez recevoir un message d’erreur semblable à ce qui suit :
Erreurs dans le moteur de stockage OLAP : une clé d’attribut dupliquée a été trouvée lors du traitement : Table : « TABLE_NAME », Colonne : « ATTRIBUTE_COLUMN_NAME, Valeur : « ATTRIBUTE_VALUE ». L’attribut est « ATTRIBUTENAME ».
Cause
Ce comportement est lié à la conception du système. SQL Server Analysis Services détecte la clé d’attribut dupliquée pendant le traitement.
L’erreur ci-dessus peut également être déclenchée lorsque la base de données relationnelle respecte la casse et que les valeurs de données sont en cas mixte. Dans Analysis Services, lors de la création d’une dimension et de ses attributs, le classement par défaut de l’attribut ne respecte pas la casse. La dimension par défaut a ErrorConfiguration|KeyDuplicate définie sur ReportAndStop. Par conséquent, si vous disposez d’une base de données relationnelle sensible à la casse qui contient, par exemple, des valeurs de données BOOKNAME et Bookname, lors du traitement de dimension, si les données BOOKNAME ont d’abord été traitées comme clé d’attribut, le traitement suivant échoue avec l’erreur suivante :
Une clé d’attribut en double a été trouvée lors du traitement : Table : « TABLE_NAME », Colonne : « ATTRIBUTE_COLUMN_NAME, Valeur : « Bookname ». L’attribut est « ATTRIBUTENAME ».
Résolution
Lors de la conception de dimensions, d’attributs de dimension et de relations d’attributs, vous devez vérifier les valeurs de données relationnelles pour les doublons et, s’ils existent, utilisez l’une des procédures suivantes pour résoudre le problème :
Option 1 : Modifiez la requête nommée en mode Source de données pour sélectionner uniquement les données avec le cas souhaité.
Par exemple, vous pouvez utiliser ou
LOWERcaserUPPERune fonction dans la requête nommée.Option 2 : Vous pouvez contourner le problème à l’aide de l’une des options suivantes :
Note
Ces options ne sont généralement pas recommandées, car elles peuvent entraîner des données inattendues, mais peuvent être utilisées à des fins de résolution des problèmes.
Définissez la valeur de l’élément KeyDuplicate sur ReportAndContinue et KeyErrorLimitAction sur StopLogging dans ErrorConfiguration.
À l’aide de l’éditeur de dimension dans Business Intelligence Development Studio (BIDS), ouvrez la dimension à laquelle appartient l’attribut et définissez le classement approprié pour l’attribut à l’aide de la propriété Classement de la dimension.
Note
Cela entraîne la fin du traitement de la dimension avec une clé d’attribut en double (différentes valeurs de cas).