临时禁用foreignkeys?(Temporary disable foreignkeys?)

2019-10-31 19:29发布

我看到thisone在MSDN magazine.i想临时禁用Foreignkeys,我所能做的使用下面的代码... ...而不是需要删除,但暂时禁用,因为我想再次启用

ALTER TABLE Orders
NOCHECK CONSTRAINT 
    FK_Orders_Customers

Answer 1:

- 禁用约束。

ALTER TABLE Orders NOCHECK CONSTRAINT FK_Orders_Customers

- 重新启用约束。

ALTER TABLE Orders WITH CHECK CHECK CONSTRAINT FK_Orders_Customers


Answer 2:

是的,正如你已经涉嫌ALTER TABLE [table] CHECK / NOCHECK CONSTRAINT *FK_Name*启用和禁用的外键约束检查。 这也证明了为什么它是一个好主意,明确命名的约束,即避免像名字FK__TABLE__A2A64E930CBAE877

有一点需要注意的是有残疾的外键约束插入/更改数据之后是SQL不会相信你的约束,如果你只是用CHECK约束启用它。 你需要做到以下几点,以获得SQL重新启用时重新检查约束:

ALTER TABLE [table] WITH CHECK CHECK CONSTRAINT *FK_Name*

您可以检查的违规行为

DBCC CHECKCONSTRAINTS ([table])

编号: http://msdn.microsoft.com/en-us/library/ms177456(v=sql.90).aspx (禁用约束),也见http://geekswithblogs.net/dturner/archive/2011/01 /31/sql-constraints-check-and-nocheck.aspx



文章来源: Temporary disable foreignkeys?