SQL ID递增问题
ID的设置是自动递增的 IDENTITY(1, 1),插入数据时自动插入从1,2,3,。。。。等递增序列,问题来了当插入数据时ID的值变成了1002不是依次递增的值,中间过程没有任何错误,整个序列是依次递增的,不存在跳序问题,求解答, --------------------编程问答-------------------- 默认递增ID是不需要显示插入的这种情况 可能是之前又导入过数据,然后删除了,但是再次插入的话,还是会以上次导入的最大ID开始递增 --------------------编程问答-------------------- 没有显示插入,是自动插入的。中间过程没有任何错误,整个序列是依次递增的,不存在跳序问题。 --------------------编程问答-------------------- 你那1002不是你自己手动插入的? --------------------编程问答-------------------- 都说了不是,没有显示插入,是插入数据时自动插入的。中间过程没有任何错误,整个序列是依次递增的,不存在跳序问题。 我用的SQL Server 2012,我对SQL Server很熟悉的。基本的常识我知道的。 --------------------编程问答-------------------- 数据错了是你程序插入的,不是数据库自增的 --------------------编程问答-------------------- 都说了不是手动填写的,我给代码发了:
INSERT INTO TianMao
(Customer, Description, Payment, Manager)
VALUES('鲁仲婷', 4, 30.5, 1)
GO --------------------编程问答-------------------- 把你的几条数据copy出来,drop 表重新create在插入数据 --------------------编程问答-------------------- 直接
truncate table 表名
然后重新插入看看 --------------------编程问答-------------------- 既然自动递增,纠结这个干嘛咧。 不连续是早晚会出现的问题 --------------------编程问答-------------------- 自增并不一定连续的啊,你有100条记录,删了50条,下次再增加记录的时候就是101了 --------------------编程问答--------------------
都说了不是,没有显示插入,是插入数据时自动插入的。中间过程没有任何错误,整个序列是依次递增的,不存在跳序问题。 我用的SQL Server 2012,我对SQL Server很熟悉的。基本的常识我知道的。
你那1002不是你自己手动插入的?
既然熟悉的话,请问微软什么时候说过IDENTITY是连续的了。递增不意味着1、2、3、4,递增意味着1、3、5、7这也是递增的。 --------------------编程问答-------------------- 递增不仅仅意味着1、2、3、4。
你要求ID应该是50,是没有根据的。 --------------------编程问答--------------------
自增并不一定连续的啊,你有100条记录,删了50条,下次再增加记录的时候就是101了
不一定需要删除。如果有多用户n个事务并发,那么自然就会跳过n号,不管最后是否这n个号全都保存了,数据库操作都不会有任何异常。 --------------------编程问答-------------------- 你可以尝试从你确定的“中间过程没有任何错误”着手找问题,我上个月也遇过,当时跳了几千,我当时也认为没有任何错误的,但最终调查结果就是服务器出问题,一直超时导致的,每失败一次自增了1,失败了几千次,仅作参考。出现问题总是有原因的。 --------------------编程问答-------------------- 两种情况:1.添加过,又删除了。2.其他程序添加的时候是在实务中,添加以后实务没有提交,这样你看不到数据,但是是插入过的。
看看是不是这两种情况中的一种? --------------------编程问答--------------------
都说了不是,没有显示插入,是插入数据时自动插入的。中间过程没有任何错误,整个序列是依次递增的,不存在跳序问题。 我用的SQL Server 2012,我对SQL Server很熟悉的。基本的常识我知道的。
你那1002不是你自己手动插入的?
既然熟悉的话,请问微软什么时候说过IDENTITY是连续的了。递增不意味着1、2、3、4,递增意味着1、3、5、7这也是递增的。
自增并不一定连续的啊,你有100条记录,删了50条,下次再增加记录的时候就是101了
不一定需要删除。如果有多用户n个事务并发,那么自然就会跳过n号,不管最后是否这n个号全都保存了,数据库操作都不会有任何异常。
+1 --------------------编程问答-------------------- 如果你是单线程你可以在数据库里面设置下identity[(1,1)] --------------------编程问答-------------------- 微笑的飘过....... --------------------编程问答-------------------- 递增非连续......
补充:.NET技术 , C#