質問: 私はSqlBulkCopyで多くのデータを挿入しています。データのソースには重複した行が含まれている可能性があります。私は目的地のテーブル私は一意性の指標を持っています。 最初の重複行が表示されたら、SqlBulkCopyは例外をスローし、内部トランザクションをロールバックします。例外を無視して挿入しておきたい。 (重複行の例外の場合のみ)。 この問題に関するいくつかの質問がありますが、それらはすべてレポートの重複行を探していますが、私は気にしません。
回答: これはSqlBulkCopyとのトレードオフの1つです。私はクリーンなデータを持っていることを知っています。クリーンなデータを持っていないこのような状況でエラーにうまく対処できるようにする必要がある場合は、他のアプローチが「より良い」(パフォーマンスはトレードオフです)。 あなたの他の質問から引き続き、SqlDataAdapterアプローチは、このようなエラーが発生した場合でもプロセスを続行できるように設定できるContinueOnErrorプロパティがあるため、この機能を提供します。私は、この方法を使用します。これは、あまりにもきれいでない/潜在的に問題のあるデータを.NETから処理する必要があるときに使用します。しかし、私が以前にリンクしたように、あなたはperfコストを見るでしょう。 あなたが絶対的なパフォーマンスを望んでいて、別々に保管するという元の要件を満たすためには、データを重複してからDBにロードする必要があります。または、TomTomのようなアプローチを使用する