在一个表上禁用外键约束?

6

我能暂时禁用外键约束吗?我该如何做到这一点?


请注意这个相关的问题:可以使用TSQL暂时禁用外键约束吗? - kristof
2个回答

25

暂时禁用一个约束(外键是一种约束)的方法:

ALTER TABLE MyTable NOCHECK CONSTRAINT MyConstraint
重新启用约束,请执行以下操作。
ALTER TABLE MyTable CHECK CONSTRAINT MyConstraint

请注意,如果您的数据不具备引用完整性,此操作将失败。 - ojblass

1

顺便提一下,这就是为什么当你使用BCPBulk Insert数据到表中时需要“Alter table”权限的原因。使用默认配置时,检查约束和外键不会被执行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接