2011-01-14 3 views
0

を重複したレコードを挿入することはできません私は、SSISを通じてストアドプロシージャを実行しようとしていると、エラー、次の私を与える:がテーブルに

[Execute SQL Task] Error: Executing the query "Exec sp1 ?" failed with the following error: "Procedure: sp1 Line: 66 Message: Cannot insert duplicate key row in object 'table.sq1' with unique index 'UIX_sp1_Key'.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

実際にストアドプロシージャsp1は、テーブルにデータを再ロード&を切り捨てています。 重複レコードを挿入しようとしている場所を正確に把握することができません。

ありがとうございます。

+3

"重複レコードを挿入しようとしている場所を正確に把握できません。" - 私たちはあなたよりも情報が少ないので、どのようにレコードを決定するのですか? –

+2

一意索引「UIX_sp1_Key」にどのフィールドがあるかを確認して、それがどのレコードが挿入されているかを比較してください。私たちがいくつかのコードなしで助言することはできません。 – RPM1984

答えて

2

データは、キー列全体で重複する値である必要があります。プライマリキーを一時的に削除する(または、同じ構造でプライマリキーを定義しない別のテーブルを作成することもできますが、これはストアドプロシージャを変更することを意味します)。次に、テーブルにデータをロードします。次に、このSQL文を使用します。

select keycol1 {,keycol2 {,keycol3} ...}, count(*) 
from tablename 
group by keycol1 {,keycol2 {,keycol3} ...} 
having count(*) > 1 

これは、キー列全体で重複するデータ値を表示します。

2

ロードする前にテーブルを切り捨てる場合、には、ソースに重複データが必要です。

何があるかを調べる。 ExcelやAccessなどを使用したり、必要に応じて支援してください。または、ユニーク制約を削除し、集約クエリを使用してステージングテーブルをクエリします。

関連する問題