私はここで解決することを望む問題に直面しています。 DataSet
に3つのテーブルがあり、データベーステーブルに挿入したいのですが。DataTable全体をデータベーステーブルに挿入/更新するC#
私はSqlBulkCopy
を使用してこれを行うことができますが、キャッチがあり、データがデータベースに既に存在するかどうかを確認したい場合は、挿入する代わりに更新する必要があります。
データがデータベーステーブルに存在しない場合は、それを挿入します。これについての助けに感謝します。
私は各レコードを繰り返し処理して、それが存在するかどうかを確認するプロシージャを起動することができます。しかし、データサイズが膨大で、各レコードを繰り返し処理するのは時間がかかるので、私はこのアプローチを使用したくありません。
よろしく
あなただけ**(1)**バルク(2)**データベース側で、あなたの実際のデータテーブルを更新する単一の実行中にSQL Serverでステージングテーブルにこれを挿入し、**はできません。サーバー上のT-SQLコードを使用してステージングテーブルから "これが存在しない場合は挿入ロジック"を実行しますか?それは、大規模なデータセットをローカルで反復処理し、いくつかの行だけを挿入するよりもはるかに速くなります。 –
DataBaseで新しいテーブルを作成する権限がありません。 –
.NETでreadコマンドとexecuteコマンドを実行することは、多くの理由で非効率的な場合があります。レコードの存在に応じて、チェックや挿入/更新などのSQL文を生成できます。しかし、これにより、操作が難しい可能性のある奇妙なテキストファイルが生成されます。 あなたは適切なSqlコマンド/文を生成することができるシンプルなC#アプリケーションを使用してIDを得ることができます。もう1つのオプションは、すべてのレコードを挿入し、後で更新するために主キーの例外をリッスンしようとしている可能性があります。 – ali