2014-11-05 3 views
0

드라이버 테이블이 10 개있는 date_driver_table이 있습니다. 2014 년 1 월, 2014 년 2 월, ... 11 월 20 일SSIS에서 실행할 쿼리를 생성하십시오.

나는 쿼리

select * from records_Jan2014 where recdate='Jan 2014' 

이 쿼리 1을 실행해야합니다. 이것은 SQL 서버 테이블에서 설정 한 결과, 쿼리 2를 실행하고 박았 후

select * from records_Feb2014 where recdate='Feb 2014' 
에는 날짜가 남아 있지 않을 때까지

다음 등 실행 한 다음 동일한 SQL 서버 테이블에 삽입 및 쿼리 3을 수행 할 것이다 드라이버 테이블.

그래서 ssis에서 date 드라이버 테이블의 모든 날짜를 object라는 date라는 변수에 넣은 다음 단일 날짜 유형이라는 변수가있는 각 루프에 대해 피드를 제공하는 전체 결과 세트로 SQL 실행 작업을 수행했습니다. 끈. SQL 서버 테이블의 소스와 대상이있는 데이터 플로우. 문제는 쿼리 1을 수행 한 다음 결과를 테이블에 넣은 다음 쿼리 2를 수행하는 것입니다.

아마도 SQL로 10 개의 파일을 만든 다음 파일로 올 db 소스를 사용하는 것 같습니다. 실행할 필요가 있지만 각 루프에 대해이를 수행하는 방법이 있는지 확인해야합니다. 아무도 나에게 이것을 가리킬 수 있습니까? 문제는 각 루프에 대해 어떻게 설정하여 쿼리 1을 실행하고, 테이블에 넣은 다음 쿼리 2를 실행하고 테이블에 넣는 등 모든 레코드가 완료 될 때까지 계속하는 것입니다.

+0

소스를 * 변수에서 * SQL 명령으로 설정할 수 있습니다. 'foreach'모양이 표현식 작성기에서'select * from records_Jan2014 where recdate = @ singleDate'와 같은 모양이됩니다. 여기에 BIDS에 대한 액세스 권한이 없으므로 자세히 설명 할 수 없습니다. – christiandev

+0

"2014 년 1 월, 2014 년 2 월, 2015 년 1 월"은 어쨌든 "10 개의 날짜"를 어떻게 계산합니까? 그럼에도 불구하고 어디서든 루핑을 사용하지 않고도 실행해야하는 모든 쿼리를 사용하여 하나의 T-SQL 스크립트를 구성하는 것이 가장 좋습니다. 장래에 사용할 동적 테이블 이름이 필요하다면, 하나의 스크립트 내에서 동적 SQL을 작성하십시오. 귀하의 시나리오에서 SSIS가 직선적 인 T-SQL에 대해 제공하는 기능이 필요하지는 않습니다. – Muqo

+0

각 쿼리에 대해 테이블 ​​이름과 레코드 날짜를 모두 변경해야합니다. 쿼리 크기 측면에서 표현식 작성기에 제한이 있습니까? 하나의 큰 스크립트는 매월 데이터 양이 많아 적합하지 않습니다. 당신은 그것이 10 개월 이상되는 것에 대해 옳습니다. Lol –

답변

1

ADO.net Source에서 변수를 가리키는 sql 명령 표현식. 그런 다음 변수를 처리 할 목록을 제공 한 execute SQL 태스크에서 공급받습니다.

+0

christiananddev에 대한 공헌 –

관련 문제