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にして次のテーブルという風に繰り返さないといけないようでした。
Confusing IDENTITY_INSERT error, says it is already on in another table
I'm trying to rebuild a database from a text file, using VBA. To insert the ID values, I call this before sending in the...
コメント