我使用sql server express作爲後端並通過C#在ASP Net中插入記錄。在桌上。我發現只有少數記錄沒有保存,而其他記錄保存在同一張表中。說我的自動識別列看起來像1,2,3,5,8,9,10,13等我已正確地給予身份種子。也應用程序不會拋出任何錯誤。插入的記錄丟失
請注意我插入記錄時不使用任何表鎖。 它是否需要使用表鎖或可能是什麼問題
在這方面的任何洞察力是讚賞。
謝謝
我使用sql server express作爲後端並通過C#在ASP Net中插入記錄。在桌上。我發現只有少數記錄沒有保存,而其他記錄保存在同一張表中。說我的自動識別列看起來像1,2,3,5,8,9,10,13等我已正確地給予身份種子。也應用程序不會拋出任何錯誤。插入的記錄丟失
請注意我插入記錄時不使用任何表鎖。 它是否需要使用表鎖或可能是什麼問題
在這方面的任何洞察力是讚賞。
謝謝
表中的記錄不保證按順序排列。嘗試運行查詢:
select *
from t
order by <auto-identity column>
另外,刪除記錄將在主鍵上創建孔。
你的問題(其實不是問題)與鎖無關。
它的最可能的原因可能是刪除記錄。刪除記錄時,添加新記錄時,標識中的間隔不會填充。
另外,查詢(將記錄添加到表中)使用IDENTITY_INSERT ON可以將值插入標識列。
此外,除非在ORDER BY
子句中指定了查詢結果,否則查詢結果不按標識列排序。
無論如何,如果您認爲發生了什麼問題,您可以運行SQL Server Profiler
中的跟蹤並查看服務器上發生了什麼。
我們需要查看您的C#和SQL代碼才能夠幫助您。 – RBarryYoung
無論什麼原因,我都會強烈建議您不要期望您的身份值是連續的。你會浪費時間試圖修復身份,並冒着破壞完整性的風險。如果您需要一個連續的數字來訂購商品,則使用第二列,該列可以從表中播種或者通過查找MAX + 1值自動生成(在更新過程中鎖定以避免碰撞)。 –