2008-10-17 1 views
1

이 데이터베이스는 db 101이어야하지만 나만큼 명확하지는 않습니다. 내가 명시 적 SQL2005를 사용하고 databaseA에서 databaseB에 데이터를 복사하고 싶습니다. DatabaseB는 이미 존재하는 데이터를 포함하는 - 예를 들어 - 심지어 변경하거나 존재 해달라고 한 PK 년대와 데이터를 포함 할 수 있습니다SQL Server 2005 - 기본 키가 변경된 경우 두 데이터베이스간에 데이터를 이동하는 가장 좋은 방법

데이터베이스 개시 부 복숭아 PK2 = 사과

데이터베이스 B 개시 부 복숭아 PK2 = 오렌지 pk3 = 사과

이제 모두 & B는 pk에 연결된 관련 테이블을 가지고 있습니다.

역사적으로 나는 A에서 데이터를 선택하고 삽입/업데이트 procs (.NET 사용)를 통해 B에 복사하는 응용 프로그램을 작성 하겠지만 obv는 매우 성가신 일입니다. 몇 가지 장점은 드롭 다운을 가질 수 있다는 것입니다. 당신은 복사 할를 선택할 수 있습니다 - 그리고 B가 존재하는 경우에 복사하거나 새로운 추가 말을 - 예를 들면 : (- 소스 선택 드롭 다운) 복숭아 사과

(드롭 다운 - 선택 대상)

-new- 복숭아 오렌지 사과

SSIS를 사용할 예정 이었지만 대상 DB에는 SQL 익스프레스 만 있으므로이 기능을 사용할 수 없으며 이전에 많은 dts를 사용했지만이 새로운 도구는 아닙니다. SQL2000에서 나는 단지 DTS를 사용할 것이지만 더 복잡한 스키마를 사용하여 지금은 그것을 믿을 수 없다.

A에서 B로 데이터를 이전하기위한 맞춤 앱을 계속 작성해야하나요?

임 모든 사람의 제안을 기대 - 나는 서버가 동일한 네트워크에있는 경우 연결된 서버를 추가 (볼이 :-)에게

답변

1

을 할 수있는 가장 좋은 방법입니다 느낌 길을 계속 싶어요 SQL Server 온라인 거래). 그런 다음 두 서버에서 쿼리를 실행할 수 있습니다.

SQL Server 2005 Express에는 SSIS가 포함되어 있지 않습니다. 그러나 BCP (대량 복사, 트랜잭션 SQL 서적에서도 온라인으로 찾아보기)를 사용하여 데이터를 대상 서버의 다른 테이블에 복사 할 수 있습니다. 아마 당신의 경로에 있으므로 dos에서 bcp /를 입력 할 수 있습니까? 옵션 목록을 얻으려면. 데이터가 대상 서버의 테이블에 있으면 쿼리를 실행할 수 있습니다.

키 사이의 매핑을 만들어야합니다. 나는 복숭아/사과에서 당신이 복숭아/오렌지/사과를 얻는 방법을 모른다. 의심의 여지가 일부 비즈니스 논리입니다. 일단 서버를 연결하거나 한 서버에서 데이터를 가져옵니다. 비즈니스 논리를 사용하여 이전 기본 키를 새 키에 매핑 할 수 있습니다. 또는 수동으로 채우는 매핑 테이블 (oldkey, newkey) 또는 (oldkey1, oldkey2, newkey1, newkey2, newkey3).

+0

, 내가 그에서 loook 것이다 bcp를 사용하는 생각 didnt는 대한 길 아래에 흥미로운 일이 될 수 변경 데이터 캡처라는 흥미로운 기능이 있습니다. 사과 등등의 poing은 다른 pk 하에서 이미 목표 db에 존재할 수도 있다는 것을 보여주었습니다. 왜 그런지 모르겠지만 그게 진짜로 힘든 이유는 모르겠습니다. :-) – schmoopy

+0

어느 쪽이든 요점은 비즈니스 규칙이나 매핑 테이블을 통해 pka에서 pkb로 매핑해야하는 것과 같습니다. – Cervo

0

SQL Server Express의 제한 사항에 익숙하지 않지만 백업 할 수 있습니까? 그런 다음 다른 데이터베이스로 가져 오시겠습니까?

+0

불행히도, 나는 db의 데이터가 필요합니다. – schmoopy

관련 문제