2012-04-24 3 views

답변

2

예,하지만 당신은 테이블을 선택하는 대신 소스에서 SQL 명령을 통보하고 실행하기 전에 격리 수준을 설정해야합니다 : 선택

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
select * from test_isolation 

및 직렬화 가능 격리 수준이 있어야 패키지 (I를 버그가 구성 요소에서 커밋되지 않은 읽기를 선택한다는 사실에있을 수 있다고 생각하십시오.)

이 예제를 참조하십시오.

enter image description here

다음 내가 트랜잭션을 시작하고 test_isolation에 행을 삽입 우는 소리 삽입 명령을 실행 : 임은 모두 내 테이블이 비어있는 테이블 여기 test_isolation_destination

에 테이블 test_isolation에서 값을 복사 할 수있는 패키지가 트랜잭션이 아직 커밋되지 않기 때문에

enter image description here

이 행은 더러운 행입니다.

그럼,이 패키지를 실행하고 당신이 볼 수있는 하나의 행 복사 한 :

enter image description here

을 한 후, 내가 트랜잭션을 롤백하고 당신이 볼 수있는 행이 소스 테이블에서 청소했지만 대상 테이블에서가 아닙니다. 패키지 읽기 커밋되지 않은 격리 수준

으로 실행되었음을 증명

enter image description here

0

SQL Server Native Client Provider (MS-SQL의 대상 플랫폼 인 경우)를 사용하고 작동 여부를 확인하기 위해 격리 수준을 설정 하시겠습니까?