【发布时间】:2012-12-18 05:49:23
【问题描述】:
在我的一张表Fee 在 SQL Server 2012 数据库标识增量的列“ReceiptNo”中突然开始跳到 100 秒而不是 1 秒,具体取决于以下两件事。
如果是1205446就跳到1206306,如果是1206321就跳到1207306,如果是1207314就跳到1208306。我要提醒你的是最后三位仍然保留如下图所示,每当发生跳转时,常量即 306。
当我重新启动计算机时出现此问题
【问题讨论】:
-
如果您在查询中添加
order by ReceiptNo,这些记录真的不存在吗?您确定插入记录时没有错误吗?如果记录尝试插入但失败,则标识将增加,如果记录被删除,则相同。如果记录被删除,ReceiptNo不会重置。您可以发布Fee表的创建表吗? -
第一个问题是 - 为什么重要?它应该是一个任意的唯一 ID
-
这是在服务器上运行还是在桌面上运行?想知道为什么服务似乎如此频繁地重新启动?
-
@bluefeet 我知道当错误发生时,身份增量就会发生。我 100% 确定没有错误。我通过添加表和用于插入行的存储过程来编辑我的问题。
-
@kashif - 99% 肯定不需要。正好跳了 1000 次(
1206306、1207306、1207806)意味着连接项目线程中的解释几乎肯定适用。
标签: sql sql-server sql-server-2012 identity-column