2012-04-13 8 views
1

이것은 바보 같은 질문 일 수 있지만 데이터 흐름 작업, OLE DB 원본 및 플랫 파일 대상이 있습니다.SSIS 2005 - 데이터 흐름의 OLE DB 원본에서 UPDATE * 및 * SELECT가 발생했습니다.

내 OLE DB 원본에서 UPDATE 문을 누른 다음 SELECT를하고 싶습니다. 그렇게하면 플랫 파일에 행을 쓰지 않는 것 같습니다. 나는 선택에 실패 할 경우 업데이트가 발생하지 않도록이 작업을하고 있습니다. (BEGIN TRAN과 COMMIT 사이에 두 문장을 넣을 예정이었습니다.)

SSIS가 실행되는 서버에 DTC 서비스가 실행되지 않기 때문에 불행히도 SSIS 트랜잭션을 사용할 수 없습니다.

+0

은 일부 세부 사항을 제공하십시오 당신이 당신의 oleDBSource하고 플랫 파일 대상이됩니다 흐름 데이터 흐름 구성 요소에 대한 작업에서 데이터에 녹색 화살표를 끌어 업데이트 명령으로 실행 SQL 작업을 추가 것을 당신이 말하는 업데이트 진술의 종류. 정확히 작동하지 않는 것은 무엇입니까? –

+0

죄송합니다. 분명치 않았습니다. 선택/파일 작업과 업데이트 작업을 원 자성 트랜잭션의 일부로하고 싶습니다. 따라서 업데이트가 실패하면 파일이 생성되지 않으며 반대의 경우도 마찬가지입니다. 나는 그것을 할 수 없다고 생각하고있다. –

답변

0

원하는 순서가 SELECT -> UPDATE -> WRITE_TO_FLAT_FILE이라고 가정하고, OLE DB 원본을 사용하여 선택을 수행 한 다음 OLE DB 명령을 사용하여 업데이트를 수행하십시오. 마지막으로 플랫 파일 대상을 사용하여 데이터를 쓰십시오.

OLE DB 원본에서 오류 출력을 '실패 구성 요소'또는 '리디렉션 행'으로 설정하십시오. 둘 중 하나를 사용하면 후속 업데이트 명령을 피할 수 있습니다.

0

제어 흐름에 대한 업데이트가 필요합니다.