SSMS не позволит мне создать отношения PK FK - PullRequest
0 голосов
/ 05 марта 2019

Во-первых, позвольте мне сказать, что я новичок и что я прочитал много других сообщений с той же проблемой.У меня есть таблица с именем «AllPeople», и в этой таблице у меня есть целочисленный столбец с именем «Ethnicity», который я хочу использовать как внешний ключ, указывающий на запись в моей таблице «RefEthnicities».Я продолжаю получать следующее сообщение:

Невозможно создать связь 'FK_AllPeople_RefEthnicities'.
Оператор ALTER TABLE конфликтует с ограничением FOREIGN KEY "FK_AllPeople_RefEthnicities".Конфликт произошел в базе данных «MVC-Cemeteries-Dev», таблице «dbo.RefEthnicities», столбце «ID».

Я установил связь в таблице «AllPeople» и сказал, чтопервичный ключ - это столбец идентификатора в «RefEthnicities», а внешний ключ - это столбец «Ethnicity» в таблице «AllPeople».Что я делаю неправильно?Моя таблица RefEthnicities новая;нет данных в нем.

В режиме разработки я установил поле идентификатора в таблице «RefEthnicities», установленной в качестве первичного ключа, щелкнув маленькое поле слева от имени «Идентификатор», и внизу в этом же окне в столбцеВкладка свойств, я сказал ему, чтобы установить спецификацию индекса на «да».

Я уверен, что это что-то простое, что я делаю, но я не могу понять это.
Сообщение об ошибке

Папка ограничений

Настройка PK FK Link

Ответы [ 3 ]

0 голосов
/ 06 марта 2019

Хорошо, это все еще не имеет смысла.Если я создаю две совершенно новые таблицы со следующими данными:

идентификатор таблицы первичный ключ int не обнуляемое значение varchar table2FK

идентификатор таблицы первичный ключ int не обнуляемое значение varchar

и вtable1 Я устанавливаю связь между table2FK и Table2.ID, она отлично работает без данных, сохраненных в таблицах.Если я использую точно такой же процесс в моих таблицах AllPeople и RefEthnicicties, я получаю ошибку.Это не имеет никакого смысла.Чего мне не хватает?адам

0 голосов
/ 06 марта 2019

Это исправило.большое спасибо.У меня в таблице AllPeople была запись об этнической принадлежности со значением 0. Поскольку у меня не было записи в таблице RefEthnicity с идентификатором 0, это означало, что я не могу этого сделать.

Адам

0 голосов
/ 05 марта 2019

Как моя ограниченная информация в вопросе, есть 2 возможности

NULL или пусто '' значение для столбца Этнос в таблице AllPeople

SELECT A.Ethnicity,A.*
FROM dbo.AllPeople A
WHERE ISNULL(A.Ethnicity,'')=''

Некоторые значенияЭтническая принадлежность столбца в таблице AllPeople не имеет родителя в идентификаторе столбца в таблице RefEthnicities

SELECT A.Ethnicity,R.ID, *
FROM dbo.AllPeople A
LEFT JOIN RefEthnicities R
 ON A.Ethnicity=R.ID
WHERE R.ID IS NULL

Если в двух запросах есть строки, необходимо исправить данные в столбце Этническая принадлежность в таблице AllPeople.

Чтение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...