문제

C#의 Bulk Copy Class로 데이터베이스에서 사본을 작성하는 응용 프로그램이 있습니다.

예외가 발생할 때 SQL Server에서 벌크 복사 작업을 롤백 할 수 있습니까?

도움이 되었습니까?

해결책

MSDN 기사 : 트랜잭션에서 대량 복사 작업을 수행합니다 또는 새로운 문서 : 거래 및 대량 복사 작업 | 마이크로 소프트 문서

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