1 votes

Impossible de créer une relation de table - SQL Server 2005

Je reçois une erreur lorsque j'essaie de créer une relation entre deux tables dans Sql Server 2005. J'essaie de créer les relations à l'aide de la fonction de diagramme de base de données. J'ai une table Player et une table Message. Je veux créer deux relations entre la table Message et la table Joueur. Je parviens à créer la première relation de Message.From à Player.PlayerId. Lorsque j'essaie de créer la deuxième relation de Message.To à Player.PlayerId, je reçois une erreur qui dit...

Table "Player" sauvegardée su [ ] - Impossible de créer la relation 'FK_Message_Player_To'. La déclaration ALTER TABLE est en conflit avec l'instruction contrainte FOREIGN KEY "FK_Message_Player_To". Le conflit s'est produit dans la base de données "TPF", la 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)

J'aimerais savoir quelle est la manière la plus optimale de résoudre ce problème. Toute explication sera la bienvenue.

2voto

womp Points 71924

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.

Soit vous supprimez les données incriminées dans le champ "À", soit vous changez l'option "Vérifier les données existantes lors de la création ou de la réactivation" en "Non".

0voto

Rob Farley Points 9042

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

Vous pouvez aussi le faire en utilisant T-SQL au lieu de l'interface graphique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X