트랜잭션 SqlBulkCopy 동안 네트워크 오류 관리

ado.net c# sql sqlbulkcopy

문제

나는 ADO.Net에서 SqlClient의 SqlBulkCopy를 연구 중이며 다음과 같은 질문을 가지고 있습니다.

많은 양의 레코드를 통해 트랜잭션의 일부로 실행되는 SqlBulkCopy 작업 중 네트워크 오류가 발생하면 어떻게됩니까?

우리가 수동으로 죽일 때까지 트랜잭션이 서버에서 열린 상태 (커밋되거나 롤백되지 않은 상태)로 유지됩니까?

각각의 SQL Server 테이블 (InvoiceHeader, InvoiceDetails)에 DataSet의 두 DataTables (InvoiceHeader, InvoiceDetails)에있는 많은 수의 레코드를 보내는 가장 좋은 방법은 무엇입니까?

고맙습니다.

편집하다:

내가 추가하고 싶었지만 잊어 버린 몇 가지 세부 사항 :

이것은 .Net v3.5 용입니다. 모든 데이터베이스 상호 작용을 위해 엔터프라이즈 라이브러리를 사용하고 있습니다.

수락 된 답변

당신이 TransactionScope에를 사용하는 가정, m의 Y 이해가없는 것입니다 SQL Server가 주변 트랜잭션을 감지하고 자동으로 참여하기 때문에, 트랜잭션이 개방되지 않습니다. 즉 최악의 경우 트랜잭션이 시간 초과되고 롤백됩니다. 트랜잭션 바인딩 을 변경하여 시간 초과가 발생할 경우 수행 할 작업 (명시 적으로 바인드 해제를 원할 경우)을 지정할 수 있습니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.