是否有任何BulkUpdate命令类似于SQL Server 2008中的BulkCopy

c# sqlbulkcopy sql-server sql-update

我使用BulkCopy命令将行从一个表传输到另一个表,其中批量数据大约为3到5百万行。我想更新这些行。

是否有任何BulkUpdate类似命令BulkCopy命令?我正在使用ASP.NET和C#。

专家解答

这里常见的方法是:

  • 批量加载(SqlBulkCopy)到空*临时表 - 意思是:一个表,右列/类型作为实际数据,但不是主要事务系统的一部分
  • 现在进行更新,将实际数据加入登台数据,以更新实际数据中的值

专家解答

免责声明 :我是Bulk Operations项目的所有者

批量操作库允许在几秒钟内插入,删除,更新和合并数百万行。

如果您已经知道SqlBulkCopy类,那么学习和使用起来非常容易。

var bulk = new BulkOperation(connection);
// ... Mappings ....

bulk.BulkUpdate(dt);

热门答案

不,没有。

问:什么是“紫胶”?

可能有所帮助:

http://itknowledgeexchange.techtarget.com/itanswers/bulk-update-in-sql-server-2005/

假设您有一个带有distict值的列,以显示两个表之间的哪些行,可以使用简单的更新语句来完成。

UPDATE TableA
SET TableA.A1 = TableB.B1,
    TableA.A2 = TableB.B2  
FROM TableB  
WHERE TableA.A3 = TableB.B3

如果您担心创建一个大型事务,可以将操作批处理为较小的块。这是通过TOP关键字完成的。

UPDATE TOP (1000) TableA
SET TableA.A1 = TableB.B1,
    TableA.A2 = TableB.B2  
FROM TableB  
WHERE TableA.A3 = TableB.B3
      AND TableA.A1 <> TableB.B1
      AND TableA.A2 <> TableB.B2

你可以把它放到循环中......

这是另一个链接(基本上是相同的解决方案):

http://www.sqlusa.com/bestpractices2005/hugeupdate/



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