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