我已经删除了数据库中的一些数据,我只是想知道是否可以重置自动增量值,并且还可以重置我尚未删除的现有数据的ID。
说我有一个用户表,其中包含约100个数据,并且已从1-50删除了数据。是否可以将ID重新设置为从1开始,自动递增到51,因为这将是下一个数字?
我了解DBCC CHECKIDENT (mytable, RESEED, 0)
。但是,如果我的理解是正确的,它将仅重置将插入表中的下一个数据的id的下一个值。我想要的是也重置现有ID。
请告诉我这是否可能。
注意
我知道这样做并非明智之举。我也知道这可能会在以后引起严重的关注,但是我真的很想知道是否有可能。我也谨记您的建议,并对此表示感谢。谢谢
答案 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,应该可以了。