http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 12812|回复: 1

[Sql Server] sql server2012 数据库自增列增大1000的解决方法

[复制链接]
发表于 2021-7-2 15:45:30 | 显示全部楼层 |阅读模式
最近突然发现, 数据库中有一张表中的自增列id, 莫名奇妙会突然增大1000, 多段时间又会增大1000,如下:
sql.jpg

很莫名, 第一次增加, 查找了程序没有问题, 过段时间又增加, 今天又增加了,就到网上查了下问题, 发现这是SQL Server 2012故意这么设计的。

原因:

来看看SQL Server 2012的英文介绍

From SQL Server 2012 version, when SQL Server instance is restarted, then table's Identity value is jumped and the actual jumped value depends on identity column data type. If it is integer (int) data type, then jump value is 1000 and if big integer (bigint), then jump value is 10000. From our application point of view, this increment is not acceptable for all the business cases specially when the value shows to the client. This is the special case/issue ships with only SQL Server 2012 and older versions have no such issue.

蹩脚的翻译

从SQL Server2012版本中,当SQL Server重新启动时,则表的IDENTITY值跳起来,实际跳下值取决于标识列的数据类型。如果它是整数(INT)数据类型,则跳值为1000,如果是大的整数(BIGINT),则跳值为10000。从我们的应用程序的角度来看,这个增量在所有的商业案例中是无法接受的,特别是当值展示给客户端时。这是特殊情况,只有SQL Server 2012有这个问题,旧版本并没有这样的问题

通俗的讲

这是由于重启数据库服务造成的,自增列突然增大1000是给数据同步预留用的。比如两台服务器做了数据同步,其中一台服务器要重启,而在这时另一台服务器又有新的数据插入,这1000行就是预留给这些新的数据的,以避免两台服务器的数据冲突。

解决方法:

1打开 计算机管理
2左边 选择SQL Server服务
3右边 右击SQL Server(MSSQLSERVER) 选择 属性
4选择 启动参数
5在参数里输入  -t272 依次点击 添加、应用、确定

如下图:
222.jpg



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2021-7-2 16:42:14 | 显示全部楼层
支持下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-18 20:28

© 2014-2021

快速回复 返回顶部 返回列表