为了账号安全,请及时绑定邮箱和手机立即绑定

因为FOREIGN KEY约束正在引用表,所以无法截断它?

因为FOREIGN KEY约束正在引用表,所以无法截断它?

MMTTMM 2019-10-23 13:13:47
使用MSSQL2005,如果我先截断子表(具有FK关系主键的表),是否可以截断具有外键约束的表?我知道我可以使用DELETE无where子句,然后RESEED使用标识(或)删除FK,截断表,然后重新创建FK。我以为只要我在父表之前将子表截断,就可以不做上述任何一个选择,但是我会收到此错误:无法截断表'TableName',因为它已被FOREIGN KEY约束引用。
查看完整描述

3 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

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


通常,我的处理过程是:


摆脱约束

Trunc表

重新创建约束。

(当然,这全都在交易中。)


当然,这仅在孩子已被截断的情况下适用。否则,我会走另一条路,完全取决于我的数据。(这里有太多变量。)



查看完整回答
反对 回复 2019-10-23
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

DELETE FROM TABLENAME

DBCC CHECKIDENT ('DATABASENAME.dbo.TABLENAME',RESEED, 0)

请注意,如果您拥有数百万条记录,这可能不是您想要的,因为它非常慢。


查看完整回答
反对 回复 2019-10-23
  • 3 回答
  • 0 关注
  • 755 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信