私はSQLとデータベースに新しいことがあります。私には気になることが1つあります。SQL Server:主キーの自動インクリメント - 削除された行と空きキーの値はどうですか?
私はASP.NET MVCプロジェクトにSQL Serverを使用しています。データベースとそのテーブルは、コード優先アプローチを使用してEntity Frameworkによって自動生成されました。
書籍のコレクション用のテーブルがあります。ちょうどCollectionId
とName
の列です。 私はこのテーブルで多くの挿入と削除を行いましたが、現在はId
の1から10までの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 –
あなたは***しないでください*** "以前に使用された自動生成値を「再利用」または「リサイクル」します。エンティティを追跡する監査テーブルがあると想像してください - 最初から6番目のオブジェクトが削除されたときにそのIDをリサイクルし、それは新しい、完全に別個の完全に独立したオブジェクトに後で出ますか?自動生成されたID(一度発行されたID)は完了していますが、もう一度再利用することはありません。 –