2017-01-31 12 views
0

Мне нравится знать, можно ли создать самореляционное ограничение с помощью инструкции ALTER TABLE. (TSQL SQL Server 2012)Атрибут ALTER TABLE противоречил ограничениям FOREIGN KEY SAME TABLE

ожидается У меня есть таблица с только первичный ключ называется ID и столбец с именем parent_id

Я хочу сделать что-то вроде этого:

ALTER TABLE myTable 
ADD CONSTRAINT FK_myTablemyTable 
FOREIGN KEY (parent_Id) 
REFERENCES myTable(Id) 

, но я только получаю ошибка:

оператор TABLE ALTER противоречили с FOREIGN KEY ЖЕ ограничение таблицы

есть альтернативный способ, чтобы получить заявление Wo rking, или вам нужно воссоздать всю таблицу в этом случае?

Надежда кто-то может помочь

Приветствия

+2

Похоже, у вас есть значение, по крайней мере, ряд для PARENT_ID, что не имеет соответствующей строки с одинаковым значением в столбце Id. –

+0

Благодарим за внимание. Я создаю какой-то инструмент миграции таблиц и не понял, что данные уже были вставлены ... Проблема в том, что корневой элемент был вставлен с parent_id = 0, а не null ... теперь он работает –

ответ

0

Проблема решена

я создаю какой-то таблицы миграции инструмента и не понял, что данные были вставлены уже ...

Проблема заключалась в том, что корневой элемент был вставлен с parent_id = 0 и не null ...

Так что нет ошибки i n инструкция SQL.

теперь работает