暂时关闭约束 (MS SQL)

我正在寻找一种方法来暂时关闭所有数据库的约束(例如表关系).

I'm looking for a way to temporarily turn off all DB's constraints (eg table relationships).

我需要将一个数据库的表复制(使用插入)到另一个数据库.我知道我可以通过以正确的顺序执行命令(不破坏关系)来实现这一点.

I need to copy (using INSERTs) one DB's tables to another DB. I know I can achieve that by executing commands in proper order (to not break relationships).

但是如果我可以暂时关闭检查约束并在操作完成后重新打开它会更容易.

But it would be easier if I could turn off checking constraints temporarily and turn it back on after the operation's finish.

这可能吗?

推荐答案

您可以禁用 FK 和 CHECK 约束仅在 SQL 2005+ 中.请参阅ALTER TABLE

You can disable FK and CHECK constraints only in SQL 2005+. See ALTER TABLE

ALTER TABLE foo NOCHECK CONSTRAINT ALL

ALTER TABLE foo NOCHECK CONSTRAINT CK_foo_column

不能禁用主键和唯一约束,但如果我理解正确的话,这应该没问题.

Primary keys and unique constraints can not be disabled, but this should be OK if I've understood you correctly.

相关文章