2010-06-21 2 views
1

DB 구조를 다른 서버로 복사하는 가장 좋은 방법은 무엇입니까?SQL Server DB 구조를 다른 서버로 전송하는 방법

저는 Management Studio에서 스크립트를 생성하고 원격 컴퓨터에서 스크립트를 실행하려고합니다. 그리고 나는 그 것을 싫어한다. 그것은 예측할 수없는 일을합니다. 생성 된 스크립트에서 많은 수의 수동 작업을 수동으로 수정해야합니다. 나는 이것이 최선의 해결책이 아니라고 생각합니다.

그렇다면 DTSWizard.exe로 SSIS 패키지를 생성하려고했지만 그 물건에 대해 아무것도 알지 못하고 데이터가없는 구조 만 복사하는 방법을 찾을 수 없었습니다.

아마 작은 조각으로 전체 DB 구조를 깨고 그들과 함께 작업하는 방법이 어떻게 든이 - 먼저 모든 테이블, 다음 뷰를 수행 한 후 등 기능

또는 그렇게하는 또 다른, 정상적인 방법이있다 순전히 두통없이?

+0

백업/복원을 사용하고 필요한 경우 테이블을 잘라내시겠습니까? –

+0

BTW, 제품은 "MS SQL"이 아닌 "SQL Server"입니다. –

+0

@ John Saunders : BTW, 제품은 "SQL Serve"가 아니라 "SQL Server"입니다. :-) –

답변

2

타사 도구를 사용할 수있는 경우 Red Gate SQL Compare는 훌륭한 도구입니다.

+0

레드 게이트 SQL 비교는 훌륭한 도구입니다! – code4life

+0

그래, 빨간 문 멋져 ... 전체 도구 벨트의 빌어 먹을 비싼 – Agzam

+0

당신의 데이터베이스 구조 또는 스키마 스크립트를 스캔하고 불일치에 대해보고 할 수있는 도구가 있는지 궁금합니다. 스크립트를 생성하는 경우 스크립트의 런타임에만 문제가 표시 될 수 있습니다. – Agzam

5

스크립트를 생성하는 것이 가장 좋은 방법입니다. 수동으로 수정해야하는 경우 잘못 스크립팅하고 있습니다.

  1. 적절한 버전의 스크립트를 생성하는 :

    확인하십시오 관리 Studio에서 "생성 스크립트 ..."작업을 사용합니까?

  2. 이전 버전의 db에서 실행중인 경우 "DROP and CREATE"및 "IF EXISTS"옵션을 지정합니까?
  3. 당신은 모든 보조 객체 (? 사용자, 트리거, 인덱스 등) 스크립팅 있습니까
+0

나의 큰 요점은 이것입니다. 저는 스크립트 생성기를 사용하여 응용 프로그램을 초기화하고 업그레이드하기위한 db 스크립트를 유지 관리합니다.데이터베이스를 실행할 때 사용하는 것과 동일한 가정 세트를 사용하여 데이터베이스를 스크립팅하면 예기치 않게 작동한다는 것을 알 수 없습니다. 예를 들어, 스크립트가 데이터베이스 자체를 만들거나 데이터베이스가 이미 존재하고 선택되어야합니까? 스크립트가 보안 개체를 생성합니까? –

+0

일반 스크립팅 도구는 개체 수준 사용 권한 생성 옵션을 선택 했음에도 불구하고 적어도 내 DB가 아닌 모든 사용 권한을 제대로 생성하지 못합니다. –

+0

2008 년 관리 스튜디오를 사용하여 sql2005 서버에서 데이터베이스를 스크립팅하려고합니다. 큰 두통은 스크립트 생성기가 원하는 위치에 임의로 VIEW 문을 작성한다는 것입니다. 때로는 테이블 전에도. 그리고 지루한 잘라 내기 작업으로 시간을 낭비해야합니다. 하나가 아니라 4 개의 스크립트가 있다고 생각합니다. 함수, 테이블, 저장 프로 시저, 뷰 등 모든 객체를 개별적으로 스크립팅하려고 시도합니다 ... – Agzam

1

DBSourceTools 시도 . (http://dbsourcetools.codeplex.com)
오픈 소스이며 특히 테이블, 뷰, procs를 디스크에 전체 데이터베이스로 스크립팅 한 다음 배포 대상을 통해 해당 데이터베이스를 다시 만들도록 설계되었습니다.
모든 데이터를 스크립팅하거나 데이터를 스크립팅 할 테이블을 지정할 수 있습니다.
또한 배포를 위해 결과를 압축 할 수 있습니다.
데이터베이스의 소스 제어 및 새 릴리스의 업데이트 패치를 테스트하는 데 사용합니다.
백엔드에서는 SMO를 기반으로하므로 SQL 2000, 2005 및 2008을 지원합니다.
스키마 비교가 가능하도록 DBDiff가 통합되었습니다.
재미있게 놀아, - Nathan.

+0

감사합니다. 시도해 보겠습니다! – Agzam

관련 문제