小编典典

如何使用 T-SQL 临时禁用外键约束?

all

SQL Server 是否支持禁用和启用外键约束?或者是我唯一的选择 drop ,然后 重新create约束?


阅读 99

收藏
2022-03-01

共1个答案

小编典典

如果要禁用数据库中的所有约束,只需运行以下代码:

-- disable all constraints
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"

要重新打开它们,请运行:(打印当然是可选的,它只是列出表格)

-- enable all constraints
exec sp_MSforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"

在将数据从一个数据库填充到另一个数据库时,我发现它很有用。这是比放弃约束更好的方法。正如您所提到的,在删除数据库中的所有数据并重新填充它(例如在测试环境中)时,它会派上用场。

2022-03-01