2 つの同一のテーブルがI_Subject
あり、テーブルをテーブルI_Temp_Subject
にコピーしたいと考えています。単純なユーザーによって使用され、管理者によって使用されます。管理者は、新しいレコードを に直接挿入し、コンテンツを検証できます。Temp_Subject
Subject
I_Temp_Subject
I_Subject
I_Subject
I_Temp_Subject
両方のテーブル ID が自動インクリメントに設定されています。copy SQL コマンドは次のとおりです。
INSERT INTO I_SUBJECT(ID,CATEGORY_ID,USER_NAME,SERIAL_NUMBER,ICON)
SELECT ID,CATEGORY_ID,USER_NAME,SERIAL_NUMBER,ICON FROM I_TEMP_SUBJECT
それを行うと、次のエラーが発生します。
System.Data.SqlClient.SqlException: Cannot insert explicit value for identity
column in table 'I_SUBJECT' when IDENTITY_INSERT is set to OFF.
上記のステートメントに ID を含めない場合、ID が同一でないことを除いて、すべて問題ありません。
したがって、挿入前にトリガーを含めて、挿入にnull IDがあるかどうかを確認し、次に自動インクリメント(管理者が直接挿入する場合)、または挿入のIDが!=nullのI_Temp_Subject
場合(管理者が検証する場合)からIDをコピーします。