2

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

我该如何重新打开它们?

我们使用的是 SQL Server 2008。

4

1 回答 1

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
于 2013-10-04T20:00:42.323 回答