我有一个奇怪的场景,其中 SQL Server 2012 数据库中的 auto Identity int 列没有正确递增。
假设我有一个使用 int auto 标识作为主键的表,它偶尔会跳过增量,例如:
1、
2、
3、
4、
5、
1004、
1005
这是在非常随机的时间在随机数量的表上发生的,无法复制它来发现任何趋势。
这是怎么发生的?
有办法让它停止吗?
这都是完全正常的。微软补充道sequences
最后,在 SQL Server 2012 中,我可能会添加和更改身份密钥的生成方式。看一看here http://www.codeproject.com/Tips/668042/SQL-Server-2012-Auto-Identity-Column-Value-Jump-Is进行一些解释。
如果您想保留旧的行为,您可以:
- 使用跟踪标志 272 - 这将导致为每个生成的身份值生成日志记录。打开此跟踪标志可能会影响身份生成的性能。
- 使用具有 NO CACHE 设置的序列生成器(http://msdn.microsoft.com/en-us/library/ff878091.aspx http://msdn.microsoft.com/en-us/library/ff878091.aspx)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)