SQL Server のテーブルでの自動インクリメントの値を初期値(1)に戻したい

SQL Server のテーブルでの IDENTITYを指定してIDを自動インクリメントしている場合に初期値に戻す方法を紹介します。

概要

SQL Server のテーブルの列において、IDENTITYを"はい"に指定すると、列の値は自動インクリメントで値が設定されます。通常は1から1づつインクリメントされます。長期間にわたるテーブルの利用や開発の完了などで、IDENTITYの値を1に戻したい場合がありますが、レコードを削除したり、TRUNCATE TABLEコマンドでテーブルを削除しても、この値は初期化されません。

初期化手順

IDENTITYの値を初期化する場合は、以下のSQLを実行します。

DBCC CHECKIDENT ([テーブル名] ,RESEED ,0)

正しく実行できると下図の結果メッセージが表示されます。

メッセージ
ID 情報を調べています。現在の ID 値 '(現在のIDの値)'。
DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。

下記のSQLでは、テーブルのレコードを削除し、IDENTITYの値も初期値に戻します。

DELETE FROM sample_table
DBCC CHECKIDENT (sample_table ,RESEED ,0)


下図の結果が表示されます。(一例)

(148765 行処理されました)
ID 情報を調べています。現在の ID 値 '487186'。
DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。
AuthorPortraitAlt
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
作成日: 2015-07-13
Copyright © 1995–2025 iPentec all rights reserverd.