请问SqlBulkCopy关闭方法提交/处理外部事务?

时间:2015-09-11 21:06:01

标签: c# sqltransaction

我有一个SQL批量复制功能,它有以下代码来创建批量复制实例。

 SqlBulkCopy bulkCopy = new SqlBulkCopy((SqlConnection) WorkConnection,
            SqlBulkCopyOptions.FireTriggers, (SqlTransaction) WorkTransaction);

" WorkTransaction"是外部交易。会发生什么

  1. 如果我们使用"使用"阻止SqlBulkCopy。它会处理这个外部交易吗?
  2. 如果我们调用close函数(" bulkCopy.Close();"),它会提交/处理外部事务吗?
  3. 任何帮助将不胜感激!

    由于

1 个答案:

答案 0 :(得分:3)

没有。向SqlBulkCopy提供外部事务的目的是允许其他操作包含在事务中,因此除非发生错误,否则SqlBulkCopy不会终止事务。

来自MS Doc

  

您可以将现有的SqlTransaction对象指定为a中的参数   SqlBulkCopy构造函数。在这种情况下,批量复制操作是   在现有交易中执行,并且不对其进行任何更改   事务状态(即既未提交也未中止)。这个   允许应用程序在a中包含批量复制操作   与其他数据库操作的事务。