如果在插入大量数据时网络连接丢失,会发生什么?

时间:2014-05-31 07:26:38

标签: c# asp.net sql-server

我在ASP.NET中使用C#和SQL Server。我按顺序插入10000条记录。

假设插入6000条记录后,网络连接丢失。这时候会发生什么?是否会插入6000条记录?

如果插入了6000条记录 - 剩下的4000条记录怎么样,以及如何识别插入的记录数以及如何反转6000条记录呢?

还有其他方法可以解决这个问题吗?如果出现此问题,我需要解决它吗?最后应该没有重复的数据。

1 个答案:

答案 0 :(得分:2)

这取决于您考虑插入的内容。

10.000插入语句,没有事务:没有回滚。

在事务中插入10k语句 - 回滚所有操作。

最佳方式是计划:

  • 将SQLBUlkCopy用于临时表,然后从那里进入最终表(SQlBulkCopy存在一些严重的并发表访问权限问题,您可以绕过这样的表)。
  • 使用MERGE进入决赛桌。

计划重新运行插入 - Mergfe确保(不需要清理)。