我有一个SQL Server 2016表,它有10,000多行。 Id
列是递增1的顺序ID。但是Id
的顺序不正确,如下面的屏幕快照所示,其中缺少330。有什么方法可以纠正现有表中的此顺序吗?
我已经尝试过如下操作,但是没有用。
CREATE SEQUENCE contacts_seq
AS BIGINT
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 99999
NO CYCLE
CACHE 10;
fixing
没有意义-您将执行一项操作,该操作将阻止对表的访问并可能影响您的应用程序性能。
然后,某人可以删除记录X
,您将再次位于同一位置。
通常,id
的含义是唯一地标识一行。如果出于某些可视化原因不想使用gaps
,则可以使用RANKING函数对此进行fix
。
例如:
SELECT ROW_NUMBER () OVER (ORDER BY id) AS [ID]