ホームページ >データベース >mysql チュートリアル >「テーブルの ID 列に明示的な値を挿入できません」を修正する方法は?
SQL Server の「ID 列に明示的な値を挿入できません」エラーのトラブルシューティング
SQL Server で「IDENTITY_INSERT が OFF に設定されている場合、テーブル 'table' の ID 列に明示的な値を挿入できません」というエラーが発生しましたか?これは通常、自動インクリメント用に指定された列に値を手動で挿入しようとしたときに発生します。 ID 列は、新しい行ごとに連続した値を自動的に生成します。デフォルトでは、IDENTITY_INSERT
は OFF
に設定され、値の直接挿入を防ぎます。
この問題を解決する方法は次のとおりです:
方法 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 サイトの他の関連記事を参照してください。