自动递增主键正在大幅跳跃,就好像大量行被删除并重新插入一样

时间:2012-01-28 05:09:08

标签: sql-server sql-server-2008-r2

自动递增主键正在大幅跳跃,就像删除并重新插入大量行一样。我很肯定他们不会被删除。我的代码中没有任何地方可以从表中删除!

我有一个包含bigint列的表作为自动递增主键和一个被编入索引的varchar列。

我注意到主键值突然大幅上升。例如..

ID      Name
1       Foo
2       Bar
12586   Woo
12587   Hoo
987698  What
987698  Is Going On

主键是群集的。可能是吗?

如果它继续进行这些大跳跃,它将会溢出。那会发生什么?

3 个答案:

答案 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)

http://msdn.microsoft.com/en-us/library/ff878058.aspx