重组现有 SQL Server 表中的序列
Posted
技术标签:
【中文标题】重组现有 SQL Server 表中的序列【英文标题】:Re-structure sequence in existing SQL Server table 【发布时间】:2020-05-22 05:06:15 【问题描述】:我有一个 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;
【问题讨论】:
您必须问自己为什么代理键的值很重要?提示:它没有。 ***.com/questions/29819849/… 【参考方案1】:fixing
这个没有意义 - 您将执行一项操作,该操作将阻止对您的表的访问,并可能影响您的应用程序性能。
然后,有人可以删除记录X
,您将再次回到原来的位置。
一般id
的目的是唯一标识一行。如果出于某些可视化原因您不想拥有gaps
,您可以使用RANKING 函数来fix
this。
例如:
SELECT ROW_NUMBER () OVER (ORDER BY id) AS [ID]
【讨论】:
以上是关于重组现有 SQL Server 表中的序列的主要内容,如果未能解决你的问题,请参考以下文章
根据表中另一个现有列的内容更改 SQL Server 中的现有列
如何将 R 数据框插入到 SQL Server 中的现有表中
SQL Server 数据库项目比较架构忽略同一表中的字段序列