CourseID は自動インクリメントです。ID が 16、17、18 の行があり、それらをすべて削除すると、次に生成される ID は 19 になります。最後の行が削除された 16 に戻したいです。
5 に答える
これは ID フィールドの仕組みではありません。実際、ソリューションが稼働しているときに ID フィールドをリセットすることは、通常は悪い考えです。
このテーブル (または監査など) の行を参照するデータベース内の他のテーブルがある場合、CourseID をリセットすることで、テーブルが再作成されたときに別のコースを効果的に指すことができます。
本当にシードをリセットする必要がある場合は、次のコマンドを使用してリセットできます。
DBCC CHECKIDENT (Course_Table, RESEED, 0)
これが SQL Server データベースであり、本当にテーブルをクリーンアップしたい場合は、代わりに TRUNCATE TABLE を使用できる場合があります。これにより、すべての行が削除されるだけでなく、IDENTITY 値もリセットされます。
トランザクションをロールバックしたり、それらを削除したりした場合、一体なぜそれらがスキップされないようにしたいのでしょうか。これは、複数のトランザクションを許可するように設計されています。手動プロセスでこれを変更しようとするのは非常に悪い考えであり、データの整合性を危険にさらすことになります. 彼らがスキップするのは良いことであり、悪いことではありません。