SET IDENTITY_INSERTを使ったときに、Azure SQL Database(SQL Server)でエラーが発生しました😇
短いですがIDENTITY_INSERTとエラーの解消法について書いてます。
そもそもIDENTITYとは?
IDENTITYをカラムに設定しておくと、
自動採番してくれるというもので、MySqlでいうauto incrimentですね。
SET IDENTITY_INSERT ‘テーブル名’ [ON|OFF]
IDENTITYなカラムにデータを明示的に入れたい場合は下記のようにテーブル名を指定してONにする。
SET IDENTITY_INSERT 'テーブル名' ON
逆に入れれないように無効にするには
SET IDENTITY_INSERT 'テーブル名' OFF
エラー内容
エラーの内容はこちら。
1つ目のテーブルにSET IDENTITY_INSERTをして、
2つ目のテーブルに同じようにやったらエラーになるというもの。
IDENTITY_INSERT is already ON for table '1つ目のテーブル名'. Cannot perform SET operation for table '2つ目のテーブル名'.
今回ユニットテストを書いていて、
SET IDENTITY_INSERTを複数回ONにしようとしてエラーになりました。。
解決方法
stackoverflowを見て解決!
相変わらずgoogle翻訳に頼っていますが😞
どうやら、いくつも同時にONにすることができないらしいです。
なので、ONにしてインサートしてOFFにして次のテーブルという風に繰り返さないといけないようでした。
Attention Required! | Cloudflare
コメント