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

时间:2012-01-14 06:15:15

标签: c# sql-server sql-update sqlbulkcopy

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

是否有BulkUpdate命令与BulkCopy命令类似?我在C#中使用ASP.NET。

3 个答案:

答案 0 :(得分:4)

不,没有。

问:什么是“紫胶”?

可能帮助:

  

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/

答案 1 :(得分:2)

这里常见的方法是:

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

答案 2 :(得分:-1)

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

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

如果你已经知道SqlBulkCopy类,那么学习和使用都很容易。

$(document).ready(function() {
   $("body").on("click", ".editBtn", function(event) {
      event.target.disabled = true;

      ...
   });
});