现有SQL Server表中的重组顺序

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

我有一个SQL Server 2016表,它有10,000多行。 Id列是递增1的顺序ID。但是Id的顺序不正确,如下面的屏幕快照所示,其中缺少330。有什么方法可以纠正现有表中的此顺序吗?

enter image description here

我已经尝试过如下操作,但是没有用。

CREATE SEQUENCE contacts_seq
AS BIGINT
   START WITH 1
   INCREMENT BY 1
   MINVALUE 1
   MAXVALUE 99999
   NO CYCLE
   CACHE 10;
sql sql-server tsql ssms
1个回答
1
投票

fixing没有意义-您将执行一项操作,该操作将阻止对表的访问并可能影响您的应用程序性能。

然后,某人可以删除记录X,您将再次位于同一位置。

通常,id的含义是唯一地标识一行。如果出于某些可视化原因不想使用gaps,则可以使用RANKING函数对此进行fix

例如:

SELECT ROW_NUMBER () OVER (ORDER BY id) AS [ID]
© www.soinside.com 2019 - 2024. All rights reserved.