IDENTITYフィールドへの値の追加

通常IDENTITYのフィールドに値を追加することは出来ないが、IDENTITY_INSERTONにすることで追加できる。

SET IDENTITY_INSERT [テーブル名] ON
INSERT INTO [テーブル名] (フィールド1,フィールド2,…) VALUES (1,"TEST",・・・)
SET IDENTITY_INSERT [テーブル名] OFF

ただし、VALUESでは無くSELECT句で指定する場合でも、フィールド名を明示的に指定する必要がある。
まったく同じ内容のテーブルを全て追加する場合でも指定しないとダメらしい。

SET IDENTITY_INSERT [テーブル名] ON
INSERT INTO [テーブル名] (フィールド1,フィールド2,…) SELECT * FROM T_TEST
SET IDENTITY_INSERT [テーブル名] OFF