web-dev-qa-db-ja.com

Microsoft SQL Server 2008 R2の自動インクリメントをリセットする

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

  • 2行追加しました:ID=1, ID=2
  • これら2行を削除しました。
  • 新しい行を追加しましたが、新しい行のIDはID=3

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

32
victorio

DBCC CHECKIDENT コマンド:

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

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

IDENTITYは、連続した番号を並べるだけです。[〜#〜] not [〜#〜]競合しないことを確認してください!すでに値がある場合-notを実行して、より低い値に戻します。

58
marc_s

SQL Server 2012を使用しており、DBCC CHECKIDENT ("YourTableNameHere", RESEED, 1)2すぐ次の挿入。

そのため、SQL Server 2012では、1から0の値を取得するには1次のレコード挿入用:

DBCC CHECKIDENT ("YourTableNameHere", RESEED, 0);  -- value will be 1 for the next record insert
17
user2309101