Cannot truncate table
本问题已经有最佳答案,请猛点这里访问。
当我尝试截断表时,我收到错误消息如下,
1 | **Cannot TRUNCATE TABLE 'Locations' because it IS being referenced BY a FOREIGN KEY CONSTRAINT.** |
我不知道查询...任何人帮助我。
有一点需要注意 - 当您截断标识列时会重置。当你删除它不。因此,如果您执行删除操作并且最后一个值为242,则下一个值将为243。
截断的唯一方法是删除关系。就个人而言 - 我只是删除而不是删除所有的关系,然后把它们放回去。
为什么?
原因是TRUNCATE删除所有记录而没有单独检查。
因此,DELETE FROM Locations将删除每条记录(这是记录在事务日志中的记录),检查没有违反任何约束。
TRUNCATE TABLE位置不会这样做。执行(并记录)单个截断操作,这就是更快的原因。
有关更多信息,请参阅此文章。
解决方法
最简单的方法是删除而不是截断。但是如果这有很长的执行时间,并且删除约束是安全的,那么您可能希望编写一个脚本来删除约束,截断表,创建约束。