9

レコードを含むデータテーブルがあります.SqlBulkCopyを使用してSqlテーブルにレコードを挿入しています.正常に動作します.次回、値がほとんど変更されていない同じレコードでデータテーブルを取得すると、SqlBulkCopyは以前の詳細を更新せずに別のレコードセットを挿入しています.方法SqlBulkCopy を使用して Sql テーブルを更新できますか?? 助けてください。

ありがとう、ヴィックス

4

4 に答える 4

16

SqlBulkCopy はレコードの挿入にのみ使用され、ここで説明されているようにレコードの更新には使用されません。一括更新を行うには、別の手法を使用する必要があります。

たとえば、ステージング テーブルに SqlBulkCopy を実行し、SQL を実行してそこからメイン テーブルに更新することができます。

于 2009-11-09T11:52:29.840 に答える
3

テーブルを切り捨てて一括コピーを実行します。

于 2009-11-09T13:28:23.157 に答える
-1

AdaTheDev が述べたように、SqlBulkCopy は挿入しかできませんが、Upsert 操作を実行できる代替ライブラリがあります。

免責事項: 私はプロジェクトBulk Operationsの所有者です

Bulk Operations ライブラリには、指定されたキーに基づいて行を挿入または更新する「 BulkMerge 」メソッドがあります。

var bulk = new BulkOperation(connection);

bulk.ColumnMappings.Add("ID", true);
bulk.ColumnMappings.Add("Column1");
bulk.ColumnMappings.Add("Column2");
bulk.ColumnMappings.Add("Column3");

bulk.BulkMerge(dt);
于 2016-03-11T18:29:53.893 に答える