什么会禁用外键约束?

时间:2013-09-27 19:00:20

标签: sql-server sql-server-2008

我有一个数据库,并且禁用了所有外键约束。没有人手动禁用它们。 SQL Server可以出于任何原因自动禁用它们吗?备份或恢复是否会将其关闭?

如何重新开启?

我们正在使用SQL Server 2008。

1 个答案:

答案 0 :(得分:1)

SQL Server不会自动禁用约束。即使是备份和恢复也无法自行关闭它们。

禁用约束的唯一方法是运行Alter Table命令,如下所示:

ALTER TABLE table_Name NOCHECK CONSTRAINT all

打开一张桌子上的所有约束:

ALTER TABLE table_Name CHECK CONSTRAINT all

要为数据库中的所有表启用约束,可以使用以下命令:

EXEC sp_MSforeachtable @command1="ALTER TABLE ? CHECK CONSTRAINT ALL" 
GO