12

重複の可能性:
IDENTITY_INSERT が OFF に設定されている場合、テーブル 'table' の ID 列に明示的な値を挿入できません

私はSQLが初めてです。INSERTSQL Server 2008 Express Edition でクエリを作成しようとしています。

クエリは次のとおりです。

insert into customers
values(201, 'Singh', 'rajnish', '101 bhandup', 'mumbai', 'mp', 33321, 0, null, 123.89, 25.00)

しかし、次のエラーが発生します。

テーブル 'customers' の ID 列の明示的な値は、列リストが使用され、IDENTITY_INSERT が ON の場合にのみ指定できます。

スタックオーバーフローを検索しました。似たような質問がいくつか見つかりましたが、説明を理解できませんでした。エラーを理解して修正するのを手伝ってください。

編集 :

私はやろうとしました:

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;

しかし、再び同じエラーが発生します。

4

3 に答える 3

18

これを試して

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
于 2012-10-03T07:22:45.273 に答える
4

最初の値が ID 列の場合は、次のように削除してください。

insert into customers
values('Singh','rajnish','101 bhandup','mumbai','mp',33321,0,null,123.89,25.00)
于 2012-10-03T07:20:40.967 に答える
2

テーブルが ID フィールドを使用している場合、テーブルは独自の値を選択します。これらの値を追跡して、重複を入力しようとしないことを確認します。独自の値を指定しようとすると、このエラーが発生します。

したがって、あなたの場合、A ID フィールドとしてマークされたフィールドなしで行を挿入します。SQLエンジンにそのフィールドの独自の値を選択させます。(これが、IDフィールドを正しく使用する理由です)

または、B.挿入を実行する前にidentity_insertを有効にします(特定の値をキーとして挿入する正当な理由がある場合)。

また、有効な挿入ステートメントを使用する必要があります。挿入する列と値を指定します。

于 2012-10-03T07:19:11.577 に答える