SqlServer BCP 是全有还是全无

本文关键字:SqlServer BCP | 更新日期: 2023-09-27 18:32:46

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

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

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

我正在使用 SqlServer 2008。

SqlServer BCP 是全有还是全无

你应该

使用SqlBulkCopy Constructor (SqlConnection, SqlBulkCopyOptions, SqlTransaction)构造函数,它接受一个参数来SqlTransaction 。在该实例下SqlTransaction大容量复制将执行操作,如果发生故障,您可以选择回滚。

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

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