小编典典

无法截断表,因为它被 FOREIGN KEY 约束引用?

all

使用MSSQL2005,如果我先截断子表(具有FK关系的主键的表),是否可以截断具有外键约束的表?

我知道我可以

  • 使用DELETE不带 where 子句的 a,然后RESEED使用标识(或)
  • 删除 FK,截断表,然后重新创建 FK。

我认为只要我在父表之前截断子表,我就可以不执行上述任何一个选项,但是我收到了这个错误:

无法截断表“TableName”,因为它被 FOREIGN KEY 约束引用。


阅读 147

收藏
2022-03-10

共1个答案

小编典典

正确的; 您不能截断具有 FK 约束的表。

通常我的过程是:

  1. 放弃约束
  2. 截断桌子
  3. 重新创建约束。

(当然,一切都在交易中。)

当然,这只适用于 孩子已经被截断的情况。 否则我会走一条不同的路线,完全取决于我的数据是什么样的。(这里的变量太多了。)

2022-03-10