删除数据后重设现有的数据ID和身份?

时间:2019-10-08 06:02:19

标签: sql sql-server tsql

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

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

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

请告诉我这是否可能。

注意

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分: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,应该可以了。