2010-04-04 6 views
0

2 대의 PC가 있으며 각 컴퓨터에는 SQL Server 2008이 설치되어 있으며 데이터가있는 데이터베이스가 있습니다. -SQL Server 2008에서 두 데이터베이스를 하나로 병합하는 방법은 무엇입니까?

는 내가 다른 하나의 PC에서 다른 (같은 DB를 가지고 다른 PC)

  • 데이터 이동이 SQL 서버에서 내 DB에서 데이터를 이동할 수있는 방법이 필요합니다

    내 2 PC의 각 DB에 데이터가 있으므로 ID 열에 문제가 있습니다. 따라서이 열은 1,2,3에서 계산되므로 (데이터는 다른 데이터와 충돌합니다. 내 DB)

    내 문제를 해결하고 데이터를 성공적으로 이동할 수있는 방법이 있습니까?

답변

1

유형 IDENTITY의 ID 열이 있습니까? 그렇다면 두 번째 데이터베이스에서 새 데이터를 삽입하면 새 ID가 생성되고 충돌이 발생하지 않습니다. 그러면 DB # 2의 이전 ID가 DB # 1에 삽입되었을 때 변환 된 것을 정의 할 수 있도록 삽입을 추적해야 할 수도 있습니다.

이 열이 이 아니고 IDENTITY 열이 아닌 경우 이전 값에 충분히 큰 수를 추가하면됩니다. ID (예 : 5)를 ID + 100'000 = 100'005 ->로 바꿔서 모든 충돌을 피할 수 있습니다. 다시 DB # 2에서 주 테이블을 참조하는 데이터가있는 경우 새로운 DB의 테이블에 삽입하기 전에 기존 참조 (이전 외부 키 ID)를 새 값으로 수정해야합니다.

좀 지저분하지만 충분히 자세하게 생각하면 분명히 할 수 있습니다. 기본적으로 가져올 데이터의 번호를 다시 지정해야하며 충돌이 발생하지 않도록해야합니다. 불행히도 SQL Server에는 이러한 기능을 수행하는 데 도움이되는 기능이 없습니다. "이 데이터를 가져 와서 ID의 번호를 다시 매 깁니다"라는 명령은 없습니다.

+0

감사합니다. 그러나 MS SQL Server Management 2008을 통해이 프로세스를 수행 할 수있는 방법이 있습니까? – Saleh

+0

별로는 아니지만 실제로는 자동으로 수행 할 기능이나 프로세스가 없습니다. –

관련 문제