Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL Server 2008中是否有类似于BulkCopy的BulkUpdate命令_C#_Sql Server_Sql Update_Sqlbulkcopy - Fatal编程技术网

C# SQL Server 2008中是否有类似于BulkCopy的BulkUpdate命令

C# SQL Server 2008中是否有类似于BulkCopy的BulkUpdate命令,c#,sql-server,sql-update,sqlbulkcopy,C#,Sql Server,Sql Update,Sqlbulkcopy,我使用BulkCopy命令将行从一个表传输到另一个表,其中包含大约300万到500万行的大容量数据。我想更新这些行 是否有任何BulkUpdate命令类似于BulkCopy命令?我正在使用ASP.NET和C。不,没有 问:lac是什么 这可能有助于: 假设您有一个带有distict值的列来显示 行是两个表之间的行,这可以通过简单的 更新语句 如果您担心创建一个大规模的交易,您可以 将操作批处理为较小的块。这是通过顶部完成的 关键词 你可以把它放到一个循环中 下面是另一个与基本相同解决方案的链接:

我使用BulkCopy命令将行从一个表传输到另一个表,其中包含大约300万到500万行的大容量数据。我想更新这些行

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

问:lac是什么

这可能有助于:

假设您有一个带有distict值的列来显示 行是两个表之间的行,这可以通过简单的 更新语句

如果您担心创建一个大规模的交易,您可以 将操作批处理为较小的块。这是通过顶部完成的 关键词

你可以把它放到一个循环中

下面是另一个与基本相同解决方案的链接:


这里的一个常见方法是:

将SqlBulkCopy大容量加载到空的*临时表中—意思是:具有正确列/类型作为实际数据的表,但不是主事务系统的一部分 现在执行一个更新,将真实数据连接到暂存数据,以更新真实数据中的值 免责声明:我是项目的所有者

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

如果您已经了解SqlBulkCopy类,那么它非常容易学习和使用

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

bulk.BulkUpdate(dt);
这是T-SQL更新命令。。。。只需在基于集合的方法(而不是逐行)上执行更新操作,然后在SQL Server上执行这些操作—不要将整个数据拉下来、更新并发回。
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
var bulk = new BulkOperation(connection);
// ... Mappings ....

bulk.BulkUpdate(dt);