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