使用SQLBulkCopy插入/更新数据库

asp.net sqlbulkcopy

我有一个带记录的数据表。我正在使用SqlBulkCopy将记录插入到Sql表中。它运行正常。下一次获取具有相同记录且数据更改的数据表时,SqlBulkCopy正在插入另一组记录而不更新以前的详细信息。如何我可以使用SqlBulkCopy更新Sql表吗?请帮忙。

谢谢,Vix

专家解答

就像AdaTheDev提到的那样,SqlBulkCopy只能插入,但是有一个允许执行Upsert操作的替代库。

免责声明 :我是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);

热门答案

SqlBulkCopy仅用于插入记录,而不是按照此处的说明更新它们。您需要使用其他技术来进行批量更新。

例如,您可以将SqlBulkCopy转换为临时表,然后运行一些SQL从那里更新到主表。



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因