我有一个数据库,所有外键约束都被禁用。没有人手动禁用它们。SQL Server 可以出于任何原因自动禁用它们吗?备份或恢复会关闭它们吗?
我该如何重新打开它们?
我们使用的是 SQL Server 2008。
我有一个数据库,所有外键约束都被禁用。没有人手动禁用它们。SQL Server 可以出于任何原因自动禁用它们吗?备份或恢复会关闭它们吗?
我该如何重新打开它们?
我们使用的是 SQL Server 2008。
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