2016-04-25 52 views
0

メッセージ547、レベル16、状態0、行2エラー外部キー制約

FOREIGN KEY制約 "AB_TRANS_FK3" と競合ALTER TABLE文を追加しています。競合は、データベース "DEV"テーブル "dbo.PRODUCT"、列 'ID'で発生しました。

こんにちはすべて、

私はこのエラーでお願いします。私は、あなたがそれらを修正する必要があります、問題の原因となっている行(複数可)を参照して、あなたのテーブルをチェックし、次のクエリ

ALTER TABLE [dbo].[AB_TRANS] WITH CHECK ADD CONSTRAINT [AB_TRANS_FK3] FOREIGN KEY([ID]) 
REFERENCES [dbo].[PRODUCT] ([ID]) 
+0

明らかに、 'PRODUCT'の主キーと一致しない外部キーを持つ' AB_TRANS'の行があります。 –

+0

はい、あなたは正しいです。既存のデータを検証せずに外部キーを追加する方法はありますか? – Newbie

+1

外部キーのポイントは、このようなデータを一貫して保持することです。データを修正し、その外部キーを持つ理由を削除しないでください。 –

答えて

0

を使用して、ここで外部キー制約を追加しようとしています。これは助けてください:

SELECT * 
FROM 
    dbo.AB_Trans A 
WHERE 
    NOT EXISTS (SELECT * FROM dbo.Product P WHERE P.ID = A.ID) 

一致がない場合は、IDまたは他のダミー値に「0」を使用していますか?このような場合は、NULLを使用する必要があるため、この問題が発生する可能性があります。

+0

実際にはこのテーブルdbo.Productを切り詰めましたが、リロードしたかったのですが、IDフィールドのTRANSテーブルに外部キー制約があり、外部キーを削除してから再作成することを考えました。 – Newbie

関連する問題