一括コピーのためのロールバック
-
19-09-2019 - |
質問
私はC#で一括コピークラスによって私のデータベースからコピーを作成するアプリケーションを持っています。
例外を発生したとき、私は、SQLサーバーで一括コピー操作をロールバックすることはできますか?
解決
MSDNの記事:一括実行トランザクションの動作コピーする 以降のドキュメント:<のhref =「https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/transaction-and-bulk-copy-operations#using-existing-transactions」 rel = "nofollowをnoreferrer">トランザクションとバルクコピー操作|マイクロソフトドキュメントの
using (SqlTransaction transaction = destinationConnection.BeginTransaction())
{
using (SqlBulkCopy bulkCopy = new SqlBulkCopy( destinationConnection, SqlBulkCopyOptions.KeepIdentity, transaction))
{
bulkCopy.BatchSize = 10;
bulkCopy.DestinationTableName = "dbo.BulkCopyDemoMatchingColumns";
try
{
bulkCopy.WriteToServer(reader);
transaction.Commit();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
transaction.Rollback();
}
finally
{
reader.Close();
}
}
}
所属していません StackOverflow