2010-02-07 32 views
9

Tôi có một ứng dụng tạo bản sao từ cơ sở dữ liệu của mình bằng lớp sao chép hàng loạt trong C#.Rollback cho bản sao số lượng lớn

Tôi có thể khôi phục tác vụ sao chép hàng loạt trong máy chủ sql khi xảy ra ngoại lệ không?

Trả lời

12

bài viết MSDN: Performing a Bulk Copy Operation in a Transaction hoặc tài liệu mới hơn: 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

nhờ Lachlan. –

Các vấn đề liên quan