ホームページ >データベース >mysql チュートリアル >ID 列に値を挿入できない理由とその修正方法は?

ID 列に値を挿入できない理由とその修正方法は?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-19 09:31:09121ブラウズ

Why Can't I Insert a Value into My Identity Column and How Do I Fix It?

SQL Server での ID 列挿入のトラブルシューティング

SQL Server の ID 列に値を挿入するときに問題が発生しましたか? このガイドでは、一般的なエラーについて説明し、簡単な解決策を提供します。

問題:

ID 列に指定された値を持つ行を挿入しようとすると、多くの場合次のエラーが発生します:

サーバー: メッセージ 544、レベル 16、状態 1、行 1
IDENTITY_INSERT が OFF に設定されている場合、テーブル 'table' の ID 列に明示的な値を挿入できません。

エラーの理解:

ID 列は、一意の連続値を自動的に生成します。 このエラーは、IDENTITY_INSERT がデフォルトで OFF に設定されているために発生します。この設定により、ID 列への値の直接割り当てが防止され、データベースによるシーケンスの制御が維持されます。

解決策:

ID 列に特定の値を挿入するには、このデフォルトの動作を一時的にオーバーライドする必要があります。 次の手順に従ってください:

  1. Enable IDENTITY_INSERT: このコマンドを使用して、明示的な値の挿入を一時的に許可します:

IDENTITY_INSERT テーブル 1 を ON に設定

  1. INSERT ステートメントを実行します。 次に、データを挿入します。 重要なこと ステートメントですべての列を指定する必要があります:INSERT
INSERT INTO Table1 (OperationID、OpDescription、FilterID)

VALUES (20, '階層の更新', 1)

  1. を無効にする:IDENTITY_INSERT 挿入後、すぐに を無効にしてデフォルトの動作に戻します:IDENTITY_INSERT
IDENTITY_INSERT テーブル 1 をオフに設定します

このプロセスにより、データの整合性を維持しながら、特定の状況下で ID 列の値を管理できます。 挿入が完了したら、必ず

を無効にしてください。IDENTITY_INSERT

以上がID 列に値を挿入できない理由とその修正方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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