首页 > 解决方案 > 在 SQL Server 中重新编号列

问题描述

我在 SQL Server 中有一个大问题。在我的一张表中,我有一个自动编号列。删除某行时,此列中的编号会变得混乱。我想使用存储过程重新编号。我怎样才能做到这一点?

标签: sql-server

解决方案


列唯一标识表中的identity每一行。这就是它的目的。通常这些也是相关表中的主键。它们用于外键引用。

您不想在创建值后更改它们。换句话说,您希望每一行都有一个在数据库中一致且跨时间一致的标识符。您不希望“27”在今天意味着一件事,而下个月则意味着另一件事。

如果您想要某种没有间隙的序列号,row_number()请在查询表时使用。这将“填补”空白,尽管分配给给定行的特定数字可能会随着时间而变化。


推荐阅读