自动递增主键正在大幅跳跃,就像删除并重新插入大量行一样。我很肯定他们不会被删除。我的代码中没有任何地方可以从表中删除!
我有一个包含bigint
列的表作为自动递增主键和一个被编入索引的varchar
列。
我注意到主键值突然大幅上升。例如..
ID Name
1 Foo
2 Bar
12586 Woo
12587 Hoo
987698 What
987698 Is Going On
主键是群集的。可能是吗?
如果它继续进行这些大跳跃,它将会溢出。那会发生什么?
答案 0 :(得分:0)
当您说“自动递增主键”时,您的意思是IDENTITY(1,1)
还是其他什么?
你在什么时间段内看到从1增加到987698?你为什么两次看到最后一个值?
您是否运行SQL事件探查器来查看该表上的活动?
您使用的是交易吗?如果是,您是否遇到回滚或异常/错误?
答案 1 :(得分:0)
查看表格的标识属性。 (IDENT_CURRENT,IDENT_SEED,IDENT_INCR)。你在使用交易吗?
答案 2 :(得分:0)
Microsoft已在SQL 2012中更改了传统序列。您可以实现自定义排序。只需点击此链接即可。这有助于您解决问题。
- 创建测试架构 创建模式测试
- 创建序列 创建序列Test.CountBy1 从1开始 增加1
- 插入三条记录 INSERT Test.Orders(OrderID,Name,Qty) VALUES(Test.CountBy1的下一个值,'轮胎',2)