SQL Server 外部キー制約の競合エラーのトラブルシューティング ガイド
データベースに新しいデータを挿入しているときに、次のようなエラーが発生する場合があります:
<code>Msg 547, Level 16, State 0, Line 1 INSERT 语句与 FOREIGN KEY 约束 "FK_Sup_Item_Sup_Item_Cat" 冲突。冲突发生在数据库 "dev_bo"、表 "dbo.Sup_Item_Cat" 中。语句已终止。</code>
エラーメッセージを理解する
このエラーは、外部キー制約違反が発生したことを示します。外部キーは、データの整合性を確保するために別のテーブルの列を参照します。このエラーは、参照先テーブルに存在しない値を挿入しようとするとスローされます。
例: Sup_Item テーブルと Sup_Item_Cat テーブル
質問で言及されているエラーの例には、Sup_Item テーブルと Sup_Item_Cat テーブルが関係しています。 Sup_Item の sup_item_cat_id 列は、Sup_Item_Cat の主キーを参照する外部キーです。このエラーは、Sup_Item_Cat に存在しない sup_item_cat_id 値を挿入しようとすると発生します。
解決策
このエラーを解決するには、外部キー列に挿入しようとしている値が参照先テーブルに存在することを確認してください。この例では、Sup_Item の client_id 列の値は、dbo.Sup_Item_Cat テーブル内の有効なクライアントに対応する必要があります。
SQL Server Management Studio の使用
SQL Server Management Studio を使用して、参照列と参照される列を識別できます。次のコマンドを実行します:
<code>sp_help 'dbo.Sup_Item_Cat'</code>
これにより、主キーと外部キーの関係を含む、Sup_Item_Cat テーブルの構造が表示されます。外部キー FK_Sup_Item_Sup_Item_Cat が配置されている列と、参照されているテーブルと列を確認してください。
データが外部キー制約に準拠していることを確認することで、そのようなエラーを回避し、データベース レコードの整合性を維持できます。
以上がSQL Server の「INSERT ステートメントが FOREIGN KEY 制約と競合しています」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。