身份正常进行,但前导 10...?

Fel*_*eir 3 sql-server identity sql-server-2012

所以我在修改我的数据库时注意到了一件非常奇怪的事情。

我刚刚插入了一个 ID 为 47 的行,然后在插入更多之后,我意识到我的身份不知何故一直跳到 146,所以它跳过了 999 到达那里。

这不是一个大问题,也不是游戏停止者,只是很奇怪,有什么办法可以解决这个问题吗?缺少备份数据和重新创建表。

为了记录,我在数据插入之间根本没有做任何事情 - 它似乎是完全随机的(当然不是,我确定是某些原因造成的......)

奇怪的数据截图

Mar*_*ith 7

这是 SQL Server 2012 中已知的行为差异,因为IDENTITY实现方式发生了变化。

有关一些讨论和可能的解决方法,请参阅相关的 Connect Item(如果这对您来说是一个真正的问题)


gbn*_*gbn 5

IDENTITY 序列永远不会是连续的

如果您有历史/审计表,行删除非常重要:当然,您永远不想重用某个历史/审计表中存在的 ID