我有一个数据库,并且禁用了所有外键约束。没有人手动禁用它们。 SQL Server可以出于任何原因自动禁用它们吗?备份或恢复是否会将其关闭?
如何重新开启?
我们正在使用SQL Server 2008。
答案 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