2010-02-07 3 views
9

C#의 대량 복사 클래스로 데이터베이스에서 사본을 만드는 응용 프로그램이 있습니다.대량 복사를위한 롤백

예외가 발생하면 SQL Server에서 대량 복사 작업을 롤백 할 수 있습니까?

답변

12

MSDN 기사 : Performing a Bulk Copy Operation in a Transaction 또는 새로운 문서 : Transaction and Bulk Copy Operations | Microsoft Docs

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(); 
     } 
    } 
} 
+0

감사 클런. –