다른 SQL Server에서 복제하려는 SQL 데이터베이스와 테이블이 있습니다. 단일 스크립트에서 데이터베이스와 테이블을 만드는 SQL 스크립트를 만들고 싶습니다.
각 경우 (데이터베이스 및 테이블)에 대해 SQL Management Studio를 사용하여 “Create”스크립트를 만들 수 있지만 두 “Create”스크립트를 단일 스크립트로 결합하는 것으로 충분할지 알고 싶습니다.
감사.
답변
SQL Server Management Studio에서 복제 할 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 “스크립트 데이터베이스”를 선택하여 도구가 해당 데이터베이스를 다른 서버에 복제 할 적절한 SQL 파일을 생성하도록 할 수 있습니다. 만들려는 각 테이블에 대해이 프로세스를 반복 한 다음 파일을 단일 SQL 파일로 병합 할 수 있습니다. 데이터베이스를 생성 한 후 테이블을 생성하기 전에 using 문을 추가하는 것을 잊지 마십시오.
최신 버전의 SQL Server에서는 SSMS의 하나의 파일로 가져올 수 있습니다.
- 데이터베이스를 마우스 오른쪽 버튼으로 클릭합니다.
- 과제
- 스크립트 생성
그러면 전체 데이터베이스 또는 일부만 스크립팅 할 수있는 마법사가 시작됩니다. 이 작업을 수행하는 T-SQL 방식은없는 것 같습니다.
답변
Clayton의 답변이 (결국) 거기에 도달하지만 SQL2005 / 2008 / R2 / 2012에서는 훨씬 더 쉬운 옵션이 있습니다.
데이터베이스를 마우스 오른쪽 버튼으로 클릭하고을 선택한 Tasks
다음을 선택 Generate Scripts
하면 스크립트 마법사가 시작됩니다. 이를 통해 테이블 / 인덱스 및 제약 조건 / 저장 프로 시저 / 함수 / 사용자 등을 포함하여 전체 데이터베이스를 다시 생성 할 수있는 단일 스크립트를 생성 할 수 있습니다. 출력을 사용자 정의하기 위해 구성 할 수있는 다양한 옵션이 있지만 대부분은 자명합니다.
기본 옵션에 만족하면 몇 초 만에 전체 작업을 수행 할 수 있습니다.
데이터베이스의 데이터를 일련의 INSERTS로 다시 만들고 싶다면 SSMS 도구 팩 (SQL 2008 버전 무료, SQL 2012 버전 유료 )도 권장 합니다.
답변
훌륭한 설명은 여기에서 찾을 수 있습니다. SQL Server Management Studio에서 스크립트 생성
Courtesy Ali Issa 수행해야 할 작업은 다음과 같습니다.
- 데이터베이스 (테이블 아님)를 마우스 오른쪽 버튼으로 클릭하고 작업 선택-> 스크립트 생성
- 다음-> 요청 된 테이블 / 테이블 선택 (특정 데이터베이스 개체 선택에서)
- 다음-> 고급 클릭-> 스크립팅 할 데이터 유형 = 스키마 및 데이터
데이터없이 테이블 만 생성하는 스크립트를 작성하려면 지침의 고급 부분을 건너 뛸 수 있습니다!
답변
SSMS가 실행 순서를 고려하지 않는 이유는 확실하지 않지만 그렇지 않습니다. 이것은 소규모 데이터베이스의 경우 문제가 아니지만 데이터베이스에 200 개의 개체가있는 경우 어떻게됩니까? 이 경우 실행 순서는 중요합니다.이 모든 것을 수행하는 것이 정말 쉽지 않기 때문입니다.
SSMS에서 생성 된 순서없는 스크립트의 경우 다음을 수행 할 수 있습니다.
a) 스크립트 실행 (일부 개체가 삽입되지 않고 일부 오류가 있음)
b) 데이터베이스에 추가 된 스크립트에서 모든 개체를 제거합니다.
c) 모든 것이 결국 실행될 때까지 a)로 돌아갑니다.
대체 옵션은 ApexSQL 스크립트 와 같은 타사 도구 또는이 스레드에서 이미 언급 한 다른 도구 (SSMS 도구 팩, Red Gate 및 기타)를 사용하는 것입니다.
이 모든 기능이 종속성을 처리하고 더 많은 시간을 절약 할 수 있습니다.
답변
예, 원하는만큼 SQL 문을 단일 스크립트에 추가 할 수 있습니다. 한 가지주의 할 점은 순서가 중요하다는 것입니다. 테이블을 생성 할 때까지 테이블에 삽입 할 수 없습니다. 기본 키가 삽입 될 때까지 외래 키를 설정할 수 없습니다.