我有一个名为 Folder 的表,其中包含 3 个字段:Id (PK)、Name、UserId (FK)
另一个名为 User 的表有两个字段:Id (PK), UserName
我正在尝试运行此 sql:
truncate table Folder
truncate table User
我收到以下错误
Cannot truncate table 'Folder' because it is being referenced by a FOREIGN KEY constraint.
Cannot truncate table 'user' because it is being referenced by a FOREIGN KEY constraint.
...即使在删除两个表中的所有记录后,我也得到了这个。为什么我不允许截断我的表格?
如果现在可以在 pk/fk 关系表上运行截断,我如何在不使用截断的情况下轻松重置 PK 的种子?
编辑:添加了数据库图
要重新播种,请使用DBCC CHECKIDENT
或者您必须删除 FK,截断,然后重新创建 FK。
这是设计使然:TRUNCATE TABLE 是简单的页面释放,并且不逐行检查约束。此限制意味着当有 FK 时您不能截断。即使您禁用 FK。