エラーを回避するために多くの回答が得られるので、エラー処理を実行し、エラーを作成するテーブル行を検出する方法に主に関心があります。実際の問題を回避するために使用するのは、ストアドプロシージャでコーディングされます。
テーブルにないエントリに対して、ストアドプロシージャでSQLInsertステートメントを実行しています。
INSERT INTO dbo.t1
(col1, col2, col3, col4, col5)
SELECT DISTINCT col1, col2, col3, col4, col5
FROM dbo.t2
WHERE (NOT EXISTS
(SELECT col1, col2, col3, col4, col5
FROM t1 AS Table_1
WHERE (col1 = t2.col1) AND
(col2 = t2.col2) AND
(col3 = t2.col3) AND
(col4 = t2.col4) AND
(col5 = t2.col5))) AND
col2 = 'VALUE'
t1.col1+t1.col2およびt1.col3+t1.col4には、別のテーブルt3.col1+t3.col2との外部キー関係があります。
ストアドプロシージャは、外部キー関係に違反しているというエラーメッセージのスローを終了できません。つまり、t3にいくつかのエントリがありません。
メッセージ547、レベル16、状態0[...]INSERTステートメントがFOREIGN-KEY[..]と競合しています
私が知りたいのは、エラーを引き起こしているt2のTABLE ROWであり、最適にはこの行の値です。私はSQLエラー処理についてかなりグーグルで検索しましたが、エラーを発生させるコーディング行を提供する例しか見つかりませんでした-これは私にとって役に立たない情報です...
助けていただければ幸いです