2013-10-02 2 views
0

대상 데이터베이스에서이 삭제를 미러링 할 수 있도록 소스 데이터베이스에서 삭제 된 행 목록을 저장하는 테이블이 있습니다. 다음 항목이있는이 목록을 사용하는 데이터 흐름을 설정했습니다.SSIS OLE DB 명령이있는 동적 SQL

테이블 이름 | 기본 키 이름 | 나는이와 함께 OLE DB 명령을 추가 한

DELETE FROM ? WHERE ? = ?

:이 테이블의 각 행에 대해 기본 키 값

, 나는 다음과 같습니다 내 목표 데시벨,에 대해 SQL 문을 실행할 그러나 명령 텍스트로 "사용 가능한 대상 열"을 매핑 할 때 아무 것도 표시되지 않습니다. 어떤 해결 방법을 사용할 수 있습니까?

답변

0

나는 변수를 사용하고 식을 사용하여 SQL을 동적으로 작성한 다음 해당 변수를 OLE DB 명령의 소스로 사용하는 것이 좋습니다.

+0

행 단위로 실행하려면이 항목이 필요합니다. 변수 표현식이이를 지원합니까? – NickHeidke

+1

행 집합을 개체 유형의 SSIS 변수에로드 한 다음 For-Each 작업을 사용하여 개체의 각 행 (ADO.Net 데이터 집합)을 반복 한 다음 올바르게 작동하는 예를 사용합니다. 다음은 그 예입니다. http://pldineshtech.blogspot.com.au/2012/08/loop-through-each-row-in-table-using.html. 가능한 디자인 결함, 즉 RBAR을 강조 표시합니다. 예를 들어이 방법의 대안은 변경 로그를 대상의 테이블에로드하고 대신 대량 업데이트/삽입을 수행하는 것입니다. 이것은 훨씬 빠르지 만 더 까다로울 수 있습니다. –

+0

기본 키는 모두 한 열에 만 있습니까? 복합 기본 키 허용은 까다 롭습니다. –

0

이런 식으로 생각하면 조작을 수행하기 위해 Script Component을 사용하는 것이 더 나을 것입니다. OLD DB Command은 동적 테이블 부분을 처리하지 않습니다.

관련 문제