Почему не следует нарушать внешний ключ при включении в SQL Server?
У нас есть две таблицы, Order Header
и Order Detail
.
Order header
таблицы OrderID
ссылки на столбцы OrderDetail
таблицы OrderID
столбцы.
Затем я собираюсь перенести некоторые данные из производственной базы данных в эти таблицы.
Я просто отключил эти ограничения внешнего ключа таблицы и вставил данные из производственной базы данных.
После вставки данных столбец OrderID
таблицы сведений о заказе содержит значения 101,102,103
, а столбец Order ID
таблицы заголовка заказа содержит только 100
.
Затем я пытаюсь включить ограничение внешнего ключа, используя следующий код t-sql
exec sp_msforeachtable "ALTER TABLE ? CHECK CONSTRAINT ALL"
Почему не следует нарушать внешний ключ с существующими данными при включении?