2010-01-22 6 views
1

Je rencontre une erreur lorsque j'essaie de créer une relation dans deux tables dans Sql Server 2005. Je tente de créer les relations à l'aide de la fonction de diagramme de base de données. J'ai une table de joueur et une table de message. Je veux créer deux relations de la table de message à la table de joueur. Je peux créer avec succès la première relation de Message.From à Player.PlayerId. Lorsque je tente de créer la deuxième relation de Message.To à Player.PlayerId je reçois une erreur qui dit ...Impossible de créer une relation de table - SQL Server 2005

« Joueur » table enregistré avec succès « message » table - Impossible de créer la relation « FK_Message_Player_To '. L'instruction ALTER TABLE était en conflit avec la contrainte FOREIGN KEY "FK_Message_Player_To". Le conflit s'est produit dans la base de données "TPF", table "dbo.Player", colonne "PlayerId".

Message 
=================== 
MessageId INT PK, 
From INT, -- refers to Player PK 
To INT -- also refers to Player PK 

Player 
================= 
PlayerId INT PK, 
FirstName NVARCHAR(50), 
LastName NVARCHAR(50) 

Je voudrais savoir quelle est la manière la plus optimale de résoudre ce problème est. Toute explication est grandement appréciée.

Répondre

2

Cette erreur se produit si vous avez des données dans la table qui entrent en conflit avec la clé que vous essayez de créer. Supprimez les données incriminées dans le champ "À" ou modifiez l'option "Vérifier les données existantes lors de la création ou de la réactivation" sur "Non".

+0

Merci beaucoup, ça l'a réparé! –

0

Rafraîchissez votre diagramme et vérifiez le nom de ce que vous avez. On dirait qu'il essaie de créer (ou a fait) le FK sur le champ [From] en utilisant le nom FK_Message_Player_To, ce qui vous donne un conflit de noms.

Alternativement, faites-le en utilisant T-SQL au lieu de l'interface graphique.

Questions connexes