可能性のある複製:
IDENTITY_INSERTがOFFに設定されている場合、テーブル「table」のID列に明示的な値を挿入できません
私はSQLが初めてです。 SQL Server 2008 ExpressエディションでINSERT
クエリを作成しようとしています。
クエリは次のとおりです。
insert into customers
values(201, 'Singh', 'rajnish', '101 bhandup', 'mumbai', 'mp', 33321, 0, null, 123.89, 25.00)
しかし、次のエラーが発生します。
テーブル 'customers'のID列の明示的な値は、列リストが使用され、IDENTITY_INSERTがONの場合にのみ指定できます。
Stackoverflowを検索しました。同様のタイプの質問を見つけましたが、説明を理解できません。エラーを理解して修正するのを助けてください。
編集:
私がやろうとしました:
SET IDENTITY_INSERT customers ON;
insert into customers
values(201, 'Singh', 'rajnish', '101 bhandup', 'mumbai', 'mp', 33321, 0, null, 123.89, 25.00)
SET IDENTITY_INSERT customers OFF;
しかし、再び同じエラーが発生します。
これを試して
SET IDENTITY_INSERT customers ON
GO
insert into customers(id, ...)
values(201,'Singh','rajnish','101 bhandup','mumbai','mp',33321,0,null,123.89,25.00)
SET IDENTITY_INSERT customers OFF
最初の値がID列の場合、次のように削除します。
insert into customers
values('Singh','rajnish','101 bhandup','mumbai','mp',33321,0,null,123.89,25.00)
テーブルがIDフィールドを使用している場合、独自の値を選択します。これらの値を追跡して、重複を入力しようとしないようにし、独自の値を指定しようとするとこのエラーが生成されるようにします。
したがって、あなたの場合、AはIDフィールドとしてマークされたフィールドなしで行を挿入します。 SQLエンジンにそのフィールドの独自の値を選択させます。 (それが、IDフィールドの権利を使用する全体の理由です)
または、B。挿入を実行する前に identity_insert を有効にします(特定の値をキーとして挿入する正当な理由がある場合)。
また、 有効な挿入ステートメント を使用する必要があります。挿入する列と値を指定します。