35

自動インクリメントする主キーを作成しました。

  • 2つの行を追加しました:ID=1, ID=2
  • これらの2つの行を削除しました。
  • 新しい行を追加しましたが、新しい行のIDは次のとおりです。ID=3

自動インクリメントを1にリセットまたは再開するにはどうすればよいですか?

4

2 に答える 2

63

DBCC CHECKIDENT次のコマンドを使用する場合:

 DBCC CHECKIDENT ("YourTableNameHere", RESEED, 1);

ただし、注意して使用してください。- これは を 1 にリセットするだけですIDENTITY- したがって、次の挿入は値 1、次に 2、そして 3 を取得します --> そして、ここで既存の値 3 と衝突します!

IDENTITY連続した順序で数字を並べるだけです-競合がないことを確認することは決してありません! すでに値がある場合は、低い値に再シードしないでください。

于 2012-12-13T10:43:00.253 に答える
20

私はSQL Server 2012を使用しており、次の挿入時に DBCC CHECKIDENT ("YourTableNameHere", RESEED, 1)値が発生します。2

したがって、SQL Server 2012の場合は、次のレコード挿入の値を取得するように変更1します。01

DBCC CHECKIDENT ("YourTableNameHere", RESEED, 0);  -- value will be 1 for the next record insert
于 2014-04-04T23:16:01.397 に答える