【发布时间】:2012-02-12 23:02:32
【问题描述】:
为什么在 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"
为什么不应该在启用时违反现有数据的外键?
【问题讨论】:
标签: sql-server sql-server-2008 sql-server-2005 foreign-keys foreign-key-relationship