SOLUTION : un conflit avec la contrainte de clé étrangère se produit lorsque vous mettez à jour la casse des valeurs de colonne dans la table de clé primaire ou que vous encadrez les valeurs de colonne dans la table de clé primaire dans SQL Server 2005

Travaillez partout et à partir de n’importe quel appareil avec Microsoft 365

Effectuez une mise à niveau vers Microsoft 365 pour travailler partout avec les dernières fonctionnalités et mises à jour.

Mettre à niveau maintenant

Symptômes

Lorsque vous mettez à jour la colonne clé primaire de la table de clé primaire dans Microsoft SQL Server 2005 en modifiant la casse des valeurs de colonne existantes ou en remplissant les valeurs de colonne, vous recevez le message d’erreur suivant :

MSG 547, niveau 16, état 0, ligne 1La instruction mise à jour en conflit avec la contrainte de référence «<contrainte>». Le conflit s’est produit dans la base de données «<nom de la base de données>», table «<nom de la table>», colonne «<nom de la colonne>».

Par exemple, ce problème se produit dans les deux situations suivantes.

Exemple 1

  • Vous pouvez créer deux tables à l’aide d’un assemblage qui ne respecte pas la casse, tel que le regroupement SQL_Latin1_General_CP1_CI_AS.

  • Vous créez une relation clé primaire et clé étrangère entre ces deux tables.

  • Pour mettre à jour la colonne clé primaire de la table de clé primaire, modifiez la casse des valeurs de colonne existantes.

Exemple 2

  • Vous créez deux tables.

  • Vous créez une relation clé primaire et clé étrangère entre ces deux tables.

  • Le paramètre ANSI_PADDING est défini sur désactivé.Remarque Par défaut, le paramètre ANSI_PADDING est défini sur désactivé.

  • Vous pouvez mettre à jour la colonne clé primaire de la table de clé primaire en remplissant les valeurs de colonne.

Cause

Ce problème se produit car les valeurs égales au niveau de type peuvent être distinctes au niveau binaire. Par exemple, au niveau de type, N’a’est égal à N’A'. Toutefois, au niveau binaire, N’a’n’est pas égal à N’A'. Le mécanisme d’optimisation suppose que l’opération de mise à jour qui modifie la casse n’apporte aucune modification réelle. C’est la raison pour laquelle le contrôle PK-FK ne fonctionne pas.

Résolution

Informations sur le Service Pack

Pour résoudre ce problème, procurez-vous le dernier Service Pack pour SQL Server 2005. Pour plus d’informations, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

913089 Comment obtenir le dernier Service Pack pour SQL Server 2005

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article. Ce problème a été corrigé pour la première fois dans SQL Server 2005 Service Pack 3.

Informations supplémentaires

Pour plus d’informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×