「IDENTITY_INSERTがOFFに設定されている場合、テーブルにID列の明示的な値を挿入できません」というエラーを修正するにはどうすればよいですか?



問題を排除するために楽器を試してください

SQL Serverデータベースを構築するときに、主キー列が自動インクリメントに設定されることがよくあります。これを行うために、主キー列のIDENTITY制限がオンに設定されています。開始位置と増分のステップは、パラメーターとしてIDENTITY列に転送されます。次に、新しいレコードが追加され、ID挿入がOFFに設定されるたびに、IDENTITY列の値は、事前定義されたステップ(通常は数値)によって増加します。さらに、IDENTITY INSERTプロパティは、単一セッションの1つのテーブルに対してのみONに設定されます。



この記事では、エラーについて説明します 「ID列の明示的な値をテーブルに挿入できません

IDENTITY_INSERTがOFFに設定されている場合」 以下に示すように。



「IDENTITYINSERTOFF」をオフにし、「PRIMARYKEYID」のないデータを挿入ステートメントに挿入します



ユーザーが「identity_insert」を「OFF」に設定すると、エラーが発生します。次に、テーブルの主キー列にデータを明示的に挿入しようとします。これは、以下の例を使用して説明できます。

データベースとテーブルの作成:

まず、「appuals」という名前のデータベースを作成します。

「appuals」という名前のデータベースを作成します。



次のコードを使用して、「person」という名前のテーブルを作成します。を使用して作成されたテーブル 「主キーID」

CREATE TABLE person(ID INT IDENTITY(1、1)、first_name VARCHAR(MAX)、last_name VARCHAR(MAX))

「person」という名前のテーブルを作成する

「identity_insertoff |」を設定するための構文オン':

ザ・ 「identity_insertをオフに設定|オン' このエラーの解決に役立ちます。このステートメントの正しい構文は次のとおりです。

IDENTITY_INSERTを設定します。 。
オン

一方、最初の引数は、テーブルが配置されているデータベースの名前です。 2番目の引数は、そのテーブルが属するスキーマであり、そのID値を次のように設定する必要があります。 オン または オフ 。 3番目の引数

ID列のあるテーブルです。

エラーなしでテーブルにデータを挿入するには、基本的に2つの異なる方法があります。これらはこのエラーの解決策と見なされ、以下で説明します。

エラー1:identity_insertをオフに設定

最初のケースでは、データをテーブルに挿入します。 「ID挿入」 に設定 'オフ' 。したがって、IDがINSERTステートメントに存在する場合、エラーが発生します 「IDENTITY_INSERTがOFFに設定されている場合、テーブル「person」のID列に明示的な値を挿入できません」。

クエリタブで次のコードを実行します。

identity_insertpersonをオフに設定します。 person(ID、first_name、last_name)に挿入values(3、 'Sadia