2008-09-23 3 views
5

한 SQL Server 2005에서 다른 SQL Server 2005로 테이블의 데이터를 복사하는 SSIS 패키지가 있습니다.이 작업은 "데이터 흐름"작업으로 수행됩니다. 패키지 구성 파일에서 대상 테이블 이름을 노출합니다.데이터 흐름 작업에서 vs_needsnewmetadata 오류를 극복하는 방법은 무엇입니까?

문제는 내가 메모장을 통해 구성 파일에서 대상 테이블 이름을 변경할 때 "vs_needsnewmetadata"오류가 발생합니다. 문제를 이해하고 있다고 생각합니다. 대상 테이블 열 매핑은 패키지를 처음 설정할 때 고정됩니다.

질문 : ssis 패키지로 위와 같은 작업을 수행하는 가장 쉬운 방법은 무엇입니까?

프로그래밍 방식으로 메타 데이터를 설정하는 방법에 대해서는 온라인으로 읽었지만이 모든 것을 피하고 싶습니다. 또한 모든 것을 잘 수행하는 C# 콘솔 응용 프로그램을 작성했습니다 ... 모든 테이블 등은 app.config에 지정되어 있지만 분명히이 솔루션으로는 충분하지 않습니다.

답변

0

한 SQL2005 서버에서 다른 서버로 데이터를 복사하는 경우 Linked Server를 만들고 저장된 proc을 사용하여 데이터를 복사합니다. SSIS 패키지는 잔인합니다.

How to Create linked server

연결된 서버가 생성되면 당신이하는 것과 프로그램 뭔가 같은 ...

INSERT INTO server1.dbo.database1.table1(id,name) 
SELECT id, name FROM server2.dbo.database1.table1 

지금까지 내가 항상 다시 열고 있도록 패키지를 다시해야했다 SSIS 패키지 메타 테이블 열 속성을 수정할 때 데이터가 업데이트됩니다.

1

새 대상 테이블에 이전 대상 테이블과 동일한 열이 있는지 확인하십시오.

열이 다르며 대상이 더 이상 입력 열을 테이블 열에 매핑 할 수없는 경우 오류가 발생한다고 생각합니다. 두 테이블에 동일한 스키마가 있으면이 오류가 발생하지 않아야합니다.

6

데이터 원본 대상 속성에서 DelayValidation을 False로 설정 했습니까? 그렇지 않다면 시도하십시오.

편집 : 당연히 DelayValidation을 True로 설정해야합니다. 그러면 그냥 진행하고 확인하는 대신 시도합니다. 또한 메모장에서 패키지를 변경하는 대신 테이블 이름을 변수에 넣고 변수를 대상의 Expression에 넣은 다음 변수를 .DtsConfig 구성 파일에 표시하십시오. 그러면 위험없이 그것을 바꿀 수 있습니다.

2

일치하는 원본 대상 열은 대소 문자를 구분하여 작업을 완료했습니다. 이, 자극에 SrNo_Prod로 만들어 P에서 p에 사례 변경 한 후, 우리는 패키지의 성공적인 실행을 얻었다 된 상태 SrNo_prod 내 경우처럼

는, 개발에 열 우리가 dtsx을 개발하여 사용 하였다.

관련 문제