问题标题是问题的症结所在。我有一个Access 2007(2003格式)前端与SQL Server 2008 Express后端。输入表单有一个链接到另一个表的子表单。在主窗体中添加记录时,表格的PK字段(设置为自动递增)会跳过大约四个ID(我说是因为有时它是三个,有时是五个,有时是4个)。
为了说明,如果最后一个ID是1234,则新记录的ID可能是1238。
我已经完成了代码,但没有找到任何表示多次保存或删除的内容。无论是否将任何记录添加到子表单,都会显示此问题。
我意识到这可能是任何事情,但我希望有人可能会有一些见解或建议的途径进行调查。
答案 0 :(得分:2)
可能是表中的某些INSERT正在事务中完成,然后事务被回滚 - 这将耗尽ID,留下空白。
答案 1 :(得分:2)
检查数据库上的Identity规范以查看Identity Increment是什么。它可能以大于1的间隔递增,但这不能解释您的奇数编号。这是一个很好的起点。
此外,您可能让人们开始记录然后将其删除,以及正在回滚的事务和增加的增量。
答案 2 :(得分:2)
启动sql profiler并观察RPC:Completed和SqlStmt:已完成的事件,以查看究竟要执行的内容。
SQL Server不会无缘无故地跳过数字。看起来它正在插入一些内容并将其向后滚动或插入行失败。