여러 트랜잭션
SQL Server 2005 Integration Services(SSIS) 패키지 내의 관련 없는 트랜잭션을 한 개의 패키지가 포함하는 것이 가능합니다. 중첩 컨테이너 계층 중간의 컨테이너가 트랜잭션을 지원하지 않으면 위 또는 아래에 위치한 컨테이너에서 별도의 트랜잭션을 시작합니다(트랜잭션을 지원하도록 구성된 경우). 트랜잭션은 중첩 컨테이너 계층의 가장 안쪽 작업부터 순서대로 패키지에 커밋 또는 롤백합니다. 그러나 내부 트랜잭션이 커밋한 후에는 외부 트랜잭션이 중단되더라도 롤백하지 않습니다.
예를 들어 한 패키지가 두 개의 Foreach 루프 컨테이너를 포함하고 각 컨테이너가 다시 두 개의 SQL 실행 작업을 포함하는 경우 시퀀스 컨테이너는 트랜잭션을 지원하지만 Foreach 루프 컨테이너는 지원하지 않고 SQL 실행 작업은 지원합니다. 이 예에서 각 SQL 실행 작업은 자체 트랜잭션을 시작하며 시퀀스 작업에서 트랜잭션이 중단된 경우에도 롤백하지 않습니다.
시퀀스 컨테이너, Foreach 루프 컨테이너 및 SQL 실행 작업의 TransactionOption 속성은 다음과 같이 설정됩니다.
- 시퀀스 컨테이너의 TransactionOption 속성은 필수로 설정됩니다.
- Foreach 루프 컨테이너의 TransactionOption 속성은 지원되지 않음으로 설정됩니다.
- SQL 실행 작업의 TransactionOption 속성은 필수로 설정됩니다.
다음 다이어그램에서는 패키지 내의 관련 없는 트랜잭션 다섯 개를 보여 줍니다. 한 개의 트랜잭션은 시퀀스 컨테이너에서 시작되며 네 개의 트랜잭션은 SQL 실행 작업에서 시작됩니다.