Невозможно создать связь между таблицами - SQL Server 2005 - PullRequest
1 голос
/ 22 января 2010

Я получаю сообщение об ошибке при попытке создать связь в двух таблицах в Sql Server 2005. Я пытаюсь создать отношения с помощью функции диаграммы базы данных. У меня есть таблица игрока и таблица сообщений. Я хочу создать две связи из таблицы сообщений в таблицу игрока. Я могу успешно создать первое отношение из Message.From к Player.PlayerId. Когда я пытаюсь создать второе отношение из Message.To в Player.PlayerId, я получаю сообщение об ошибке ...

Таблица «Игрок» успешно сохранена Таблица «Сообщение» - Невозможно создать отношение 'FK_Message_Player_To'. АЛЬТЕР ТАБЛИЦА противоречит Ограничение FOREIGN KEY "FK_Message_Player_To". Конфликт произошло в базе данных "ТПФ", стол «dbo.Player», столбец «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)

Я хотел бы знать, каков наиболее оптимальный способ решения этой проблемы. Любое объяснение очень ценится.

Ответы [ 2 ]

2 голосов
/ 22 января 2010

Эта ошибка возникает, если в таблице есть данные, конфликтующие с ключом, который вы пытаетесь создать.

Удалите поврежденные данные в поле «Кому» или измените параметр «Проверить существующие данные при создании или повторном включении» на «Нет».

0 голосов
/ 22 января 2010

Обновите свою диаграмму и проверьте названия того, что у вас есть. Звучит так, будто он пытается (или уже создал) FK в поле [From], используя имя FK_Message_Player_To, что дает вам конфликт имен.

В качестве альтернативы, используйте T-SQL вместо графического интерфейса.

...