SQL Server 2012列标识增量在第7个条目上从6跳到1000+

And*_*ark 123 sql sql-server identity sql-server-2012

我有一个奇怪的情况,我的SQL Server 2012数据库中的自动标识int列没有正确递增.

假设我有一个使用int自动标识作为主键的表,它偶尔会跳过增量,例如:

1,2,3,4,5,1004,1005

这是在随机数量的随机时间表上发生的,无法复制它以查找任何趋势.

这是怎么回事?有办法让它停止吗?

Mit*_*dir 76

这一切都很正常.微软sequences在SQL Server 2012中添加了最后,我可能会添加和更改生成身份密钥的方式.看看这里有一些解释.

如果您想拥有旧行为,您可以:

  1. 使用跟踪标志272 - 这将导致为每个生成的标识值生成日志记录.打开此跟踪标志可能会影响身份生成的性能.
  2. 使用具有NO CACHE设置的序列生成器(http://msdn.microsoft.com/en-us/library/ff878091.aspx)

  • 这一切都是完全正常的,直到你用完了 (92认同)
  • 有了这样的"功能",谁需要bug? (65认同)
  • 我有一个'传统'标识列,增量设置为42.列值增加41706(eek!)恰好是993*42 (4认同)
  • 我们从不重启服务器,序列跳了! (3认同)