是SqlServer BCP全部还是全无?

问题描述 投票:1回答:1

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

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

This blog post认为这是一个短暂的,几乎不可避免的错误。我想知道的是,当这个错误发生时,是否保证没有插入任何行(如果是这样,我可以简单地捕获此异常并在.NET端重试BCP操作)?

我正在使用SqlServer 2008。

c# sql-server sqlbulkcopy bcp
1个回答
0
投票

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

您可能还会看到:Transaction and Bulk Copy Operations

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

© www.soinside.com 2019 - 2024. All rights reserved.