質問

私は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();
        }
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top