2010-06-18 4 views
0

간단한 SSIS 프로젝트가 있습니다. 제어 흐름에서 나는 세 단계가 있습니다SSIS는 개별 작업을 수행하지 않고 함께 실행합니다.

Step 1: Select Data from Db1.Table1

Step 2: Create Table2 in Db2

Step 3: Copy Data in Db1.Table1 to Db2.Table2

나는 순서대로 하나 하나의 "작업 실행"하면 잘 실행 ...하지만 나는 다음과 같은 오류 메시지가 전체 프로젝트 실행하려고하는 경우 :

Error at Copy Data from Table1 to DB2 dbo Table2 Task [OLE DB Destination[40]]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E37.

An OLE DB record is available. Source: "Microsoft OLE DB Provider for SQL Server" Hresult: 0x80040E37 Description: "Invalid object name 'DB2.dbo.Table2".".

+1

단계간에 제어 흐름 종속성을 추가 했습니까? 그렇지 않으면 병렬로 실행하려고 시도합니다. –

+0

예. 제어 흐름 의존성이 제자리에 있습니다. – davemackey

답변

4

문제는 유효성 검사에서 발생했습니다. 기본적으로 하위 작업에서는 DelayValidation이 비활성화됩니다. 두 번째 단계는 첫 번째 단계에서 가져온 데이터로 채워진 세 번째 단계의 테이블을 만들기 때문에 유효성 검사 오류가 있습니다. SSIS는 테이블을 찾지 만 존재하지 않습니다. DelayValidation을 활성화하면 테이블이 실행되기 전에 테이블이 강제로 실행되지 않으므로 잘 작동합니다.

1

제어 흐름이 내게 적합하지 않습니다. 레코드를 선택하는 단계는 필요 없습니다. 이 일을 볼 수있는 직업으로 운영 될 때, 그리고 그 일이 무엇이든하지 않는다면 선택하십시오.

정리 또는 변형 작업을 수행하지 않는 이유는 무엇입니까? 왜 SSIS를 사용하고 있습니까? wouldn; t t-sql stament table1에서 table2로 충분합니까? 물론 이것은 두 번 이상 실행하면 문제가됩니다. 따라서 테이블이 존재하지 않으면 잘라 내기 스크립트를 작성하여 잘라냅니다 (여기서 데이터를 대체한다고 가정하고 있음). 그런 다음 삽입하십시오. .

관련 문제