概要
自動採番の列があるテーブルに追加する場合,通常はその列を省いて新たに採番されるようにするが,データ戻しの場合のように値も指定して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
コメント