Giogri の発言をテストしたところ、テーブルに行が含まれた後に ID 仕様 (少なくとも 2008 年、おそらく他のバージョンも) を有効にすると、DB は最大の整数値から番号付けを開始します。列の値が 100 の行が 1 つある場合、Identity を有効にすると、次の挿入は 101 になります。Identity Seed が 1 に指定されていても、予想していたものではありませんでしたが、実際に起こったことです。
SET IDENTITY INSERT
に加えて 、 reseed コマンドもあります。 DBCC CHECKIDENT
ID 値を指定した値にリセットするコマンドです。
ID 仕様の有効化が実際には列の最大の整数から始まることを考えると、おそらく誰かが SET IDENTITY_INSERT
を使用した可能性があります。 または DBCC CHECKIDENT
を実行しました .
Andomar が言うように、再配列する最も簡単な方法は、このように列を削除/再作成することです
ALTER TABLE tbl
DROP COLUMN ident_column
GO
alter TABLE tbl
ADD ident_column int IDENTITY
SET IDENTITY_INSERT
ドキュメント:http://msdn.microsoft.com/ en-us/library/aa259221(SQL.80).aspx
DBCC CHECKIDENT
ドキュメント:http://msdn.microsoft.com/ en-us/library/aa258817(SQL.80).aspx