DDL

[SQLServer] 自動採番列(IDENTITY列)に値をINSERTする

SQLServerの自動採番列(IDENTITY列)に値をINSERTする方法です。

構文

対象のテーブルに対して以下のコマンドを実行すればOKです。

(自動採番列にINSERTできるようにする)
SET IDENTITY_INSERT <テーブル名> ON;
(自動採番列にINSERTできないようにする)
SET IDENTITY_INSERT <テーブル名> OFF;

サンプル

例として、IDENTITY_INSERTがOFFの場合にIDENTITY列にINSERTしようとした場合は以下のようなエラーが発生します。

(結果)
メッセージ 544、レベル 16、状態 1、行 1 IDENTITY_INSERT が OFF に設定されているときは、テーブル 'M_SYOHIN' の ID 列に明示的な値を挿入できません。

備考

  • IDENTITY_INSERTがONの状態からOFFの状態にした後にされる発番は、最大値+IDENTITYの増分です。

-DDL
-