2010-06-15 2 views
0

두 개의 별도 SQL Server에 두 개의 데이터베이스가 있습니다 (둘 다 통합하려고 시도 함)."조회"가 포함 된 SQL Server 데이터 가져 오기

이것은 내 설정이며 Server1 : Orders 테이블에서 Server2 : Orders 테이블로 가져 오려고합니다.

Server1 
    Database1 
     Orders(ID, CustomerName, DateOrdered) 

Server2 
    Database2 
     Customers(ID, Name) 
     Orders(ID, CustomerID, DateOrdered) 

여기서 알 수 있듯이 Database1에는 데이터의 정규화가 해제되어 있고 Database2에는 동일한 데이터가 있으며 정상적으로 정규화되어 있습니다.

문제점은 SQL Server 가져 오기를 수행하는 것입니다. Database2에서 Customers 테이블이 채워지면 Server1.Database1.Orders.CustomerName과 Server2.Database2.Customers.Name이 일치합니다.

내가 가져 오기를 원한다면, 가져 오기 데이터의 CustomerName 필드 값을 기반으로 Customer.ID 필드를 "룩업 (look-up)"한 다음, 새로운 주문 표.

SSMS를 통해 두 서버에 연결할 수 있으며 데이터 원본으로 "SQL Server Native Client 10"을 통해 가져 오기를 시도하고 있습니다.

업데이트 내가 SSIS "패키지"를 할 수있을 않을거야 나타납니다

그래서 내가 무슨 짓을했는지하는 것은 이것이다 : Database2.OrdersOLD에

이전 Database1.Orders.

이제는 Database2.Orders에 새로운 Order 레코드를 작성하고 올바르게 조회 된 CustomerID를 삽입하는 쿼리를 찾고 있습니다. 이제 3 개의 테이블이 모두 동일한 데이터베이스에 있으므로 가능한 것입니까?

답변

1

SSIS, 특히 Lookup Transformation을 사용하십시오. MSDN 문서 링크에서 링크 된 블로그 및 자습서를 참조하십시오.

+0

어떻게 그리고 어디 그 중 하나를 만들려면 어떻게해야합니까? 어쩌면 내가 뭔가를 놓친 것일 수도 있지만, 그것을 만드는 방법을 알아낼 수는 없습니다. – Nate

+0

링크에서 비디오보기 : http://msdn.microsoft.com/en-us/library/cc952929.aspx –

+0

적절한 SSIS 패키지를 만들어 테스트하고 실행해야합니다. 이것은 SSMS에서 일부 마술 마법사 클릭이 아닙니다. –

1

나는 그것을 같이 할 수 있다고 생각 :

SELECT O1.ID, C2.ID, O1.DateOrdered 
    INTO Server2.Database2.Orders 
    FROM Server1.Database1.Orders O1 
    INNER JOIN Server2.Database2.Customers C2 ON C2.Name = O1.CustomerName 
관련 문제