[SQL Server]自動採番の列に値指定でINSERT

SQL Server

概要

自動採番の列があるテーブルに追加する場合,通常はその列を省いて新たに採番されるようにするが,データ戻しの場合のように値も指定してInsertしたいときの方法。自動採番を一時的に無視したい。

列リストが使用されていて、「IDENTITY_INSERT が ON のときに限り、テーブル ‘xxxtable’ の ID 列に明示的な値を指定できます」 というエラーが表示されるなど

方法

SET IDENTITY_INSERT テーブル名 ON; 
INSERT INTO テーブル名 
(列1,列2,列3....必ず必要、省略不可) 
SELECT 
  列1,列2,列3....必ず必要、省略不可  
FROM コピー元テーブル WHERE 条件式; 
SET IDENTITY_INSERT テーブル名  OFF;

必ず最後は OFF にする。でないと自動採番が無効のままになるらしい

プロパティ

SQL Server 12.0

コメント

スポンサーリンク
タイトルとURLをコピーしました