我對SQL和數據庫很陌生,有一件事困擾着我。SQL Server:主鍵自動增量 - 刪除的行和空閒鍵值是什麼?
我爲我的ASP.NET MVC項目使用SQL Server,我的數據庫及其表是由實體框架使用代碼優先方法自動生成的。
我有一個書籍收藏表 - 只有CollectionId
和Name
列。 在開發過程中,我在此表中進行了許多插入和刪除,現在它有10行,Id
的1到10(最初的條目)。但是,當我添加一個新的時,它的Id
設置爲37.顯然以前有Id
到36的條目,但現在已經消失,這些數字似乎是免費的。
那麼爲什麼新條目沒有將Id
設置爲11?這是一種限制還是安全功能?
謝謝你的回答。
https://www.google.ge/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=sql%20server%20identity%20reuse –
你應該永遠不會***「重複使用「或」回收「以前使用過的自動生成的值。想象一下,在某個地方有一個審計表可以跟蹤實體的創建情況 - 如果您在第一個對象被刪除時回收該Id,那麼您如何從6個月後開始說明Id = 11屬於哪個對象,它後來出現了一個新的,完全獨立的完全獨立的對象?自動生成的ID - 一旦發佈 - 完成,消失,再也不會被重複使用! –