MS SQL Server 自增标识列字段值跳跃问题

微软数据库服务重启后自增列 IDENTITY 值跳跃加 1000 问题

发布用户:小梦

2023/08/16 11:23


Microsoft SQL Server 数据库表中的自增列值有时候突然就跳跃了一千,我在检查表中数据的时候又发现,每当重启过 SQL Server 服务,这时再往有自增列的表中插入数据,就会使该自增列增加 1000,我在翻阅了一些关于这方面的资料时找到了原因和解决办法。

据悉,这个问题在 MS SQL Server 2012 的之前版本似乎并不存在,从 2012 版开始,自增标识列增加了缓存这一特性,该缓存特性会导致每次数据库服务重启后使自增列的标识数值增加 1000,如果自增列是 bigint 类型,那么会增加 10000(在实际的测试中,并不是每次重启服务都会导致自增列的数字跳跃)。

据微软公司相关技术人员宣称,标识列的缓存特性并不是一个 BUG,而是故意设计的特点,标识缓存用于提高具有标识列的表的 INSERT 性能,该缓存跳跃的新数值受影响于数据库服务的重启次数,这在某些情况下是有用处的。

自称的官方人员的话语总是有些含糊不清,不过好在提供了几条切实可能的解决方案:

作者要求仅登录用户查看完整内容

登录


代码写多了,脑力不够用了,请我喝杯咖啡提提神 ☕

警告!禁止网络诈骗、非法集资、非法套现等法律外的缘由转账汇款,你的赞赏转账请考虑再三后支付,此收款不作任何形式的退款。





金额:

* 支付宝支付后如果没有自动返回请手动返回此页并刷新。



* 在线内容服务不支持任何形式的退款/退费操作;支付后的订单记录可以在“用户主页 - 用户订单中心”查看。

此网站可能不完全兼容您目前的浏览器!
此页随时可能被替换下线,请不要依赖此页功能!
此页正在维护更新,可能会出现错误或卡顿。
通知 & 公告

暂时还没有消息