2009-12-21 81 views
0

問題標題是問題的關鍵。我有一個SQL Server 2008 Express後端的Access 2007(2003格式)前端。輸入表單具有鏈接到另一個表的子表單。當在主窗體中添加記錄時,表格的PK字段(設置爲自動增量)會跳過大約四個ID(我之所以說是因爲有時候是三個,有時是五個,有時是四個)。訪問前端,SQL Server後端跳過自動編號ID

爲了說明,如果最後一個ID爲1234的新記錄的ID可能是1238

我已經通過代碼加強,但沒有發現任何會指示多個保存或刪除。無論是否將任何記錄添加到子窗體,都會出現此問題。

我意識到這可能是任何事情,但我希望有人可能有一些洞察力或建議的渠道進行調查。

回答

2

這可能是表中的一些INSERT正在一個事務中完成,然後事務回滾 - 這會使用ID,留下空白。

+0

由於某種原因,SQL Server插入失敗通常會使標識增加得更高,即使沒有插入表中。 – Dave 2009-12-21 16:32:19

2

檢查數據庫的標識規範以查看標識增量是什麼。它可能會以大於1的間隔遞增,但這並不能解釋您的奇數編號。這是一個很好的起點。

此外,您可能會讓人們開始記錄,然後刪除它,以便回滾事務並增加增量。

2

啓動sql分析器和觀察者RPC:Completed和SqlStmt:完成的事件,看看究竟是什麼得到執行。

SQL Server不會無緣無故跳過數字。它看起來像插入某些東西並將其回滾或插入行失敗。