2012-11-16 3 views
1

두 데이터베이스 DB1과 DB2가 있습니다. 내가 스크립트를 다른 서버에이 두 데이터베이스를 이동해야으로SQL 서버에 데이터베이스 스크립트 생성

SELECT .... 
FROM DB1.TableA INNER JOIN DB2.TableB 
..... 

지금 : 지금과 같이 또한 DB2와 관련된 DB1에서 일부 저장 프로 시저 및 뷰가 있습니다. DB2의 스크립트를 실행하고 있다면 먼저 DB1 오브젝트에 대해 스크립트를 실행해야합니다. 스크립트를 하나씩 실행할 수 있는지 또는 종속성을 기반으로 만들 스크립트를 하나 준비해야하는지 잘 모르겠습니다.

의견이 있으십니까?

+0

당신은 더미 db와 테이블을 가지고 이것을 아주 쉽게 테스트 할 수 있습니다 ... –

답변

0

데이터 이동 스크립트를 생성하려면 이동하려는 데이터베이스에서 스크립트 -> 생성 스크립트 을 사용하는 것이 좋습니다. 데이터와 스키마를 스크립팅할지 또는 스키마 만 스크립팅할지, 인덱스를 스크립팅할지 여부, 외래 키 관계 등을 선택할 수 있습니다. 여기에 빠른 가이드 : 그래도 난 당신이라면

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema-stored-procedure-functions-triggers-tables-views-constraints-and-all-other-database-objects/

, 내가 레드 게이트 SQL의 시험 버전을 다운로드 할은 비교. 여기에는 스키마 비교 및 ​​데이터 비교라는 두 가지 도구가있어 두 데이터베이스를 비교하고 스키마와 데이터를 동기화 할 수 있습니다. 그것은 훌륭한 도구이며 우리는 매일 데이터베이스를 동기화하여 사용합니다.

위와 같이 설정 한 링크 된 서버 (DB2를 참조하는 DB1)가있는 경우 웹 사이트의 트래픽이 낮을 때 두 데이터베이스를 모두 오프라인으로 설정하는 것이 좋습니다. 또는 SQL Compare/Generate Scripts를 사용하여 DB1 및 DB2의 복제본을 만든 다음 연결 문자열이 새 서버로 이식 된 후 복제본을 가리 키도록 전환 할 수 있습니다. 그렇게하면 스위치가 즉각적으로 작동하므로 데이터베이스를 오프라인으로 전환 할 필요가 없습니다.

관련 문제