禁用所有表上的外键约束不起作用

Amr*_*awy 3 sql sql-server-2005

我尝试了很多命令来禁用我的数据库中的表约束来截断所有表,但现在它仍然给我同样的错误:

无法截断表'',因为它是由FOREIGN KEY约束引用的.

我试试

EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
EXEC sp_MSforeachtable "TRUNCATE TABLE ?"
Run Code Online (Sandbox Code Playgroud)

我为每张桌子试过这个

ALTER TABLE [Table Name] NOCHECK CONSTRAINT ALL  
truncate table [Table Name]
ALTER TABLE [Table Name] CHECK CONSTRAINT ALL  
Run Code Online (Sandbox Code Playgroud)

每次我有上一条错误消息.我怎么解决这个问题?

Ash*_*pta 5

如果要截断表,可能需要删除外键并将其添加回来.从这里开始.

"你不能在FOREIGN KEY约束引用的表上使用TRUNCATE TABLE;而是使用没有WHERE子句的DELETE语句.因为没有记录TRUNCATE TABLE,所以它不能激活触发器."

类似的问题在这里.