SQL ID递增问题

Lemon360 2013-06-25 07:49:58
ID的设置是自动递增的 IDENTITY(1, 1),插入数据时自动插入从1,2,3,。。。。等递增序列,问题来了当插入数据时ID的值变成了1002不是依次递增的值,中间过程没有任何错误,整个序列是依次递增的,不存在跳序问题,求解答,
...全文
359 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
独立级IT民工 2013-06-29
  • 打赏
  • 举报
回复
递增非连续......
独立级IT民工 2013-06-29
  • 打赏
  • 举报
回复
微笑的飘过.......
Regan-lin 2013-06-29
  • 打赏
  • 举报
回复
如果你是单线程你可以在数据库里面设置下identity[(1,1)]
Regan-lin 2013-06-26
  • 打赏
  • 举报
回复
引用 11 楼 sp1234 的回复:
引用 4 楼 Lemon360 的回复:
[quote=引用 3 楼 u011130289 的回复:] 你那1002不是你自己手动插入的?
都说了不是,没有显示插入,是插入数据时自动插入的。中间过程没有任何错误,整个序列是依次递增的,不存在跳序问题。 我用的SQL Server 2012,我对SQL Server很熟悉的。基本的常识我知道的。
既然熟悉的话,请问微软什么时候说过IDENTITY是连续的了。递增不意味着1、2、3、4,递增意味着1、3、5、7这也是递增的。[/quote]
引用 13 楼 sp1234 的回复:
引用 10 楼 flashposition 的回复:
自增并不一定连续的啊,你有100条记录,删了50条,下次再增加记录的时候就是101了
不一定需要删除。如果有多用户n个事务并发,那么自然就会跳过n号,不管最后是否这n个号全都保存了,数据库操作都不会有任何异常。
+1
gengchenhui 2013-06-26
  • 打赏
  • 举报
回复
两种情况:1.添加过,又删除了。2.其他程序添加的时候是在实务中,添加以后实务没有提交,这样你看不到数据,但是是插入过的。 看看是不是这两种情况中的一种?
钝忆思梦 2013-06-25
  • 打赏
  • 举报
回复
你可以尝试从你确定的“中间过程没有任何错误”着手找问题,我上个月也遇过,当时跳了几千,我当时也认为没有任何错误的,但最终调查结果就是服务器出问题,一直超时导致的,每失败一次自增了1,失败了几千次,仅作参考。出现问题总是有原因的。
  • 打赏
  • 举报
回复
引用 10 楼 flashposition 的回复:
自增并不一定连续的啊,你有100条记录,删了50条,下次再增加记录的时候就是101了
不一定需要删除。如果有多用户n个事务并发,那么自然就会跳过n号,不管最后是否这n个号全都保存了,数据库操作都不会有任何异常。
  • 打赏
  • 举报
回复
递增不仅仅意味着1、2、3、4。 你要求ID应该是50,是没有根据的。
  • 打赏
  • 举报
回复
引用 4 楼 Lemon360 的回复:
引用 3 楼 u011130289 的回复:
你那1002不是你自己手动插入的?
都说了不是,没有显示插入,是插入数据时自动插入的。中间过程没有任何错误,整个序列是依次递增的,不存在跳序问题。 我用的SQL Server 2012,我对SQL Server很熟悉的。基本的常识我知道的。
既然熟悉的话,请问微软什么时候说过IDENTITY是连续的了。递增不意味着1、2、3、4,递增意味着1、3、5、7这也是递增的。
flashposition 2013-06-25
  • 打赏
  • 举报
回复
自增并不一定连续的啊,你有100条记录,删了50条,下次再增加记录的时候就是101了
vo__ov 2013-06-25
  • 打赏
  • 举报
回复
既然自动递增,纠结这个干嘛咧。 不连续是早晚会出现的问题
  • 打赏
  • 举报
回复
直接
truncate table 表名
然后重新插入看看
fumanduo9 2013-06-25
  • 打赏
  • 举报
回复
引用 6 楼 Lemon360 的回复:
[quote=引用 5 楼 fumanduo9 的回复:] 数据错了是你程序插入的,不是数据库自增的
都说了不是手动填写的,我给代码发了: INSERT INTO TianMao (Customer, Description, Payment, Manager) VALUES('鲁仲婷', 4, 30.5, 1) GO[/quote] 把你的几条数据copy出来,drop 表重新create在插入数据
Lemon360 2013-06-25
  • 打赏
  • 举报
回复
引用 5 楼 fumanduo9 的回复:
数据错了是你程序插入的,不是数据库自增的
都说了不是手动填写的,我给代码发了: INSERT INTO TianMao (Customer, Description, Payment, Manager) VALUES('鲁仲婷', 4, 30.5, 1) GO
fumanduo9 2013-06-25
  • 打赏
  • 举报
回复
数据错了是你程序插入的,不是数据库自增的
Lemon360 2013-06-25
  • 打赏
  • 举报
回复
引用 3 楼 u011130289 的回复:
你那1002不是你自己手动插入的?
都说了不是,没有显示插入,是插入数据时自动插入的。中间过程没有任何错误,整个序列是依次递增的,不存在跳序问题。 我用的SQL Server 2012,我对SQL Server很熟悉的。基本的常识我知道的。
Regan-lin 2013-06-25
  • 打赏
  • 举报
回复
你那1002不是你自己手动插入的?
Lemon360 2013-06-25
  • 打赏
  • 举报
回复
没有显示插入,是自动插入的。中间过程没有任何错误,整个序列是依次递增的,不存在跳序问题。
  • 打赏
  • 举报
回复
默认递增ID是不需要显示插入的 这种情况 可能是之前又导入过数据,然后删除了,但是再次插入的话,还是会以上次导入的最大ID开始递增

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧