1

我们有一些依赖 .NET SqlBulkCopy API 的关键代码。有时,此代码将失败并出现以下错误:

System.Data.SqlClient.SqlException : Insert bulk failed due to a schema change of the target table.

这篇博文表明这是一个短暂的、几乎无法预防的错误。我想知道的是,当这个错误发生时,是否保证没有插入任何行(如果是这样,我可以简单地捕获这个异常并在.NET 端重试 BCP 操作)?

我正在使用 SqlServer 2008。

4

1 回答 1

0

您应该使用SqlBulkCopy Constructor (SqlConnection, SqlBulkCopyOptions, SqlTransaction)构造函数,它接受一个参数SqlTransaction。在该SqlTransaction批量复制实例下将执行操作,如果失败,您将可以选择回滚。

您可能还会看到:事务和批量复制操作

大容量复制操作可以作为独立操作执行,也可以作为多步骤事务的一部分执行。后一种选项使您能够在同一事务中执行多个批量复制操作,以及执行其他数据库操作(例如插入、更新和删除),同时仍然能够提交或回滚整个事务

于 2013-09-24T13:08:24.303 回答