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 に答える