小编Mra*_*anz的帖子

我将如何重置表的所有标识值,并在 Sql Server 2008 中重新设置自动编号

我有一个客户在数据库中有一个带有自动编号 ID 字段的表。客户使用该 ID 作为存储在数据库中的唯一记录的用户友好标识符。一段时间后,我的应用程序将删除数据库中的旧记录,这样在任何给定时间通常会有大约 30k 条记录的滑动窗口。

这个功能很好,已经工作了几年,但现在数据库中的id已经上亿了,客户现在很难将故障id传达给外界。

他们想要做的,以及我希望找出如何做的,是将当前表中的所有记录,并将它们的 id 减少到从 1 开始,然后重新设定身份以开始计算新表的位置id 会。

在数学中:新 id = 当前 id - min(ID)

然后最后:新种子 = max(id)

谢谢

编辑

为了帮助澄清一件事,记录会定期从数据库中删除,因此开始:

1-30k 有效记录

5个月后:

1-2mil - 无记录 2mil - 2mil + 30k - 有效记录

用户本质上想要做的是从所有 id(仍然是唯一的)中减去 2mil,并假装以前的记录根本不存在。

sql-server-2008 sql-server identity ddl

2
推荐指数
1
解决办法
589
查看次数

标签 统计

ddl ×1

identity ×1

sql-server ×1

sql-server-2008 ×1