В следующих случаях я получаю сообщение об ошибке от SQL-сервера, из-за которого невозможно удалить внешний ключ при удалении:
TABLE1: функция
- PK: Id
- Имя
- Категория
- FK: To_Same_Table_Id NULLABLE («функция может иметь дочернюю функцию»)
ТАБЛИЦА 2: атрибуты
- PK_Id
- FK_To_TAble 1 При каскаде удаления (не обнуляемый, поскольку он всегда выводится из таблицы 1) (функция имеет несколько атрибутов) (и еслифункция удаляется, а затем ее атрибуты должны быть удалены)
SQL Server отказывается вводить FK, так как жалуется, что может вызвать связи с циркуляром. Введение ограничения FOREIGN KEY 'FK_TABLE2_Table1Id' в таблицу 'TABLe2' может привести к возникновению циклов или нескольких каскадных путей. Укажите ON DELETE NO ACTION или ON UPDATE NO ACTION, или измените другие ограничения FOREIGN KEY.
Я думаю, что причина этого в том, что если таблица 1 "1" будет удалена, то таблица 2 "1,2,3 "удалить, но, поскольку если в таблице 1 запись 1 имеет ссылку на" 2 ", она также удалит" 2 ", если" 2 "будет иметь ссылку также на конкретную таблицу 2, то она будет круглой.
Итак, я понимаю проблему, но ... я ищу ответ.