SqlBulkCopy Close方法是否会提交/处置外部事务?
本文关键字:外部 事务 提交 Close 方法 是否 SqlBulkCopy | 更新日期: 2023-09-27 18:12:28
我有一个SQL批量复制函数,它有以下代码来创建一个批量复制实例。
SqlBulkCopy bulkCopy = new SqlBulkCopy((SqlConnection) WorkConnection,
SqlBulkCopyOptions.FireTriggers, (SqlTransaction) WorkTransaction);
"WorkTransaction"是一个外部事务。它会发生什么
- 如果我们在SqlBulkCopy周围使用"using"块。是否会处理这个外部事务?
- 如果我们调用close function ("bulkCopy.Close();"),它会提交/处理外部事务吗?
任何帮助将不胜感激!
谢谢
No。向SqlBulkCopy
提供外部事务的目的是允许在事务中包含其他操作,因此,除非发生错误,否则SqlBulkCopy不会终止事务。
来自MS Doc:
可以指定一个现有的SqlTransaction对象作为参数SqlBulkCopy构造函数。在这种情况下,大容量复制操作为在现有事务中执行,并且不更改事务状态(即既未提交也未中止)。这控件中包含大容量复制操作与其他数据库操作的事务。