使用MSSQL2005,如果我先截断子表(具有FK关系主键的表),是否可以截断具有外键约束的表?我知道我可以使用DELETE无where子句,然后RESEED使用标识(或)删除FK,截断表,然后重新创建FK。我以为只要我在父表之前将子表截断,就可以不做上述任何一个选择,但是我会收到此错误:无法截断表'TableName',因为它已被FOREIGN KEY约束引用。
3 回答
HUH函数
TA贡献1836条经验 获得超4个赞
正确; 您不能截断具有FK约束的表。
通常,我的处理过程是:
摆脱约束
Trunc表
重新创建约束。
(当然,这全都在交易中。)
当然,这仅在孩子已被截断的情况下适用。否则,我会走另一条路,完全取决于我的数据。(这里有太多变量。)
慕的地6264312
TA贡献1817条经验 获得超6个赞
DELETE FROM TABLENAME
DBCC CHECKIDENT ('DATABASENAME.dbo.TABLENAME',RESEED, 0)
请注意,如果您拥有数百万条记录,这可能不是您想要的,因为它非常慢。
- 3 回答
- 0 关注
- 755 浏览
添加回答
举报
0/150
提交
取消