ホームページ >データベース >mysql チュートリアル >「テーブルの ID 列に明示的な値を挿入できません」を修正する方法は?

「テーブルの ID 列に明示的な値を挿入できません」を修正する方法は?

DDD
DDDオリジナル
2025-01-19 09:17:131013ブラウズ

How to Fix

SQL Server の「ID 列に明示的な値を挿入できません」エラーのトラブルシューティング

SQL Server で「IDENTITY_INSERT が OFF に設定されている場合、テーブル 'table' の ID 列に明示的な値を挿入できません」というエラーが発生しましたか?これは通常、自動インクリメント用に指定された列に値を手動で挿入しようとしたときに発生します。 ID 列は、新しい行ごとに連続した値を自動的に生成します。デフォルトでは、IDENTITY_INSERTOFF に設定され、値の直接挿入を防ぎます。

この問題を解決する方法は次のとおりです:

方法 1: IDENTITY_INSERT

を一時的に有効にする

このメソッドを使用すると、一時的にのみ特定の値を ID 列に挿入できます。

<code class="language-sql">SET IDENTITY_INSERT Table1 ON

INSERT INTO Table1 (OperationID, OpDescription, FilterID)  --Column list is mandatory
VALUES (20, 'Hierarchy Update', 1);

SET IDENTITY_INSERT Table1 OFF</code>

方法 2: ID 制約を削除する

この列の自動インクリメントが必要ない場合は、ID 制約を削除してください。 注: これにより、自動インクリメントが永久に無効になります。

<code class="language-sql">ALTER TABLE Table1
DROP CONSTRAINT IDENTITY_Constraint;</code>

この変更後、列に値を直接挿入できます。ただし、後続の行挿入ごとに値を手動で指定する必要があることに注意してください。 この方法を選択する前に、慎重に検討する必要があります。

以上が「テーブルの ID 列に明示的な値を挿入できません」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。