删除数据后要重置现有数据ID和身份吗?

问题描述 投票:1回答:2

我已经删除了数据库中的一些数据,我只是想知道是否可以重置自动增量值,并且还可以重置我尚未删除的现有数据的ID。

说我有一个用户表,其中包含大约100个数据,并且我已从1-50删除了数据。是否可以将ID重新设置为从1开始,并且将自动递增设置为51,因为这将是下一个数字?

我知道DBCC CHECKIDENT (mytable, RESEED, 0)。但是,如果我的理解是正确的,它将仅重置将插入表中的下一个数据的id的下一个值。我想要的是也重置现有ID。

请让我知道是否可行。

NOTE

我知道这样做并非明智之举。我也知道这可能会在以后引起严重的关注,但是我真的很想知道是否有可能。我也谨记您的建议,并对此表示感谢。谢谢

sql sql-server tsql
2个回答
1
投票

不要浪费时间这样做。 ID供内部使用。另外,如果您与其他表有关系,则也需要在那里更新ID。

您可以创建视图或仅添加任何SELECT语句ROW_ID() OVER(ORDER BY [id]),您将获得一个没有间隙的增量值。


0
投票

如果要填补空白,则必须使用“启用identity_insert启用”手动完成。

例如,如果我想将第51-60行更改为1-10:

set identity insert mytable on
insert mytable(id, column1, column2)
select id-50, column1, column2 
from myTable 
where id between 51 and 60
set identity_insert mytable off
delete mytable where id between 51 and 60

然后重新播种您的ID,应该可以了。

© www.soinside.com 2019 - 2024. All rights reserved.