SQL server 解决删除数据时有外键约束的限制

我们在日常的开发过程中,难免需要在开发数据库中清理数据,但是有时会遇到表与表之间有外键的约束,而不能顺利删除数据。如果只是两三张表还容易解决,如果有十几张表互相有外键关联,而你又想快速删除数据。可以参考这里:

EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'

之后你就可以随意删除数据,而不用考虑外键和触发器约束问题。但删除完数据,记得恢复约束

EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
posted @ 2021-03-01 22:27  奚毛宇  阅读(1607)  评论(0)    收藏  举报