我尝试了很多命令来禁用数据库中的表约束以截断所有表,但现在它仍然给我同样的错误:
Cannot truncate table '' because it is being referenced by a FOREIGN KEY constraint.
我试试
EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
EXEC sp_MSforeachtable "TRUNCATE TABLE ?"
我为每张 table 都试过这个
ALTER TABLE [Table Name] NOCHECK CONSTRAINT ALL
truncate table [Table Name]
ALTER TABLE [Table Name] CHECK CONSTRAINT ALL
每次我收到以前的错误消息时。我怎么解决这个问题?
最佳答案
如果要截断表,可能必须删除外键并将它们添加回来。来自 here .
“您不能在 FOREIGN KEY 约束引用的表上使用 TRUNCATE TABLE;相反,请使用不带 WHERE 子句的 DELETE 语句。因为 TRUNCATE TABLE 未记录,所以它无法激活触发器。”
类似问题 here在 SO。
关于sql - 在所有表上禁用外键约束不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2482316/