首页 新闻 会员 周边 捐助

关于sqlserver2012自动增长列问题

0
悬赏园豆:100 [待解决问题]

ID是自增长列,为什么后插入数据ID比前面插入的ID要小?73624是早上的记录,60457是下午的记录,在多线程下插入数据的。

不要急,没问题的主页 不要急,没问题 | 初学一级 | 园豆:51
提问于:2016-03-10 23:16
< >
分享
所有回答(5)
0

像这个只能在程序上下功夫,在添加时加把锁

唯我独萌 | 园豆:537 (小虾三级) | 2016-03-11 08:03

应该不是加锁的问题吧,ID是自动增长的,偶尔出现一条记录ID增长不正常,而后面的数据又正常。

支持(0) 反对(0) 不要急,没问题 | 园豆:51 (初学一级) | 2016-03-11 09:14
0

你插入数据的时候Id列不要填数据,让数据库自动生成,应该不会出现这种问题

刘宏玺 | 园豆:14020 (专家六级) | 2016-03-11 09:39

是自动生成的,插入数据的时候没有给ID赋值.

支持(0) 反对(0) 不要急,没问题 | 园豆:51 (初学一级) | 2016-03-11 09:41

@不要急,没问题: 你是怎么保证Id数大的是先插入的?没准是你的TradeTime插入的时候是时间比较老的,正常情况下,Id自增可能会出现跳跃过大,但是不会出现变小的情况。

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2016-03-11 09:45

@刘宏玺: TradeTime是消费时间,而时间是在同一天。一条上午一条下午,顺序是能得到保证的

支持(0) 反对(0) 不要急,没问题 | 园豆:51 (初学一级) | 2016-03-11 09:49

@不要急,没问题: 你要是能保证TradeTime是getdate()得到的,我相信你说的额顺序能得到保证,但是我觉得还是这个TradeTime出问题了,肯定是把老值差入了,不信你在加一列插入时间,值为getdate()

遇到问题的时候不要纠结是数据库或者操作系统出问题了,多在自己的代码上面找原因

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2016-03-11 09:53

@刘宏玺: 好的 谢谢。我先看看代码

支持(0) 反对(0) 不要急,没问题 | 园豆:51 (初学一级) | 2016-03-11 09:54
1

这个肯定是代码逻辑问题,自动增长列是不会乱串的,应该是后面时间获取有些问题的,还是好好查下插入数据的相关代码

CodeHsu | 园豆:5668 (大侠五级) | 2016-03-11 10:02
0

你的自增ID为啥跨幅这么大,你是用ID排序查看列表的吗

先看看ID有没有断层,再看看插入时间,再去定位问题原因

Rich.T | 园豆:3440 (老鸟四级) | 2016-03-11 11:40
0

tradetime不见得是 创建时间 

有可能是执行什么操作更新的时间

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2016-03-11 11:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册