2017-10-24 1 views
0

전체 SQL Server 데이터베이스 (테이블, 뷰, 함수, 프로 시저, 사용자)를 스크립팅하고 싶습니다.전체 데이터베이스 스키마를 적절한 순서로 만드는 스크립트를 만드는 방법은 무엇입니까?

관리 스튜디오의 "스크립트 생성"기능을 사용해 보았지만 잘못된 순서로 개체를 만듭니다. 예를 들어이 생성 순서는 최소한의 4 테이블 만 데이터베이스에 적합합니다. :

CREATE TABLE ORDER_LINES 
CREATE TABLE SUPPLIERS 
CREATE TABLE ORDERS 
CREATE TABLE USERS 

종속성 순서에있는 모든 데이터베이스 오브젝트를 나열하는 방법 (가장 의존에 가장 의존에서) 적어도 거기에 있습니까?

내가 달성하려는 것은 백업 파일을 사용하지 않고 동일한 서버 인스턴스에서 데이터베이스 복사본을 만드는 것입니다.

감사

+0

>>> + 데이터? – sepupic

+1

또한 SSIS를 사용하여 스키마를 내보내고 dacpac 파일을 만들려면 데이터베이스 (데이터 유무에 관계없이) 또는 SSDT (SQL Server 프로젝트)를 복사 할 수 있습니다. SSMS를 사용하여 데이터 계층 응용 프로그램 파일 (dacpac)을 내보내고 명령 줄 또는 SSMS를 사용하여 다시 배포 할 수 있습니다. SSDT에서 스키마 비교를 수행하고 동기화를 수행 할 수 있습니다. 제 3 자 도구도 있습니다. 내 생각에이 질문은 약간 넓기 때문에 [dba.se]에 대해 이해할 수 있습니다. – Pred

+0

@sepupic 나는 스키마와 데이터를 원하지만 스키마를위한 견고한 스크립트가 생성 된 후에 데이터에 대한 쿼리를 작성하고 싶습니다. – LaBracca

답변

0

그런 다음, '데이터베이스 이름'sp_detach_db를 사용, 복사하고, 파일을 붙여 넣기 (데이터 및 파일 MDF와 LDF 로그) 한 후 다시 부착 할 수있다.

복사 된 파일이 다음 다른 이름으로 다시 연결하는 데 사용할 수 있습니다 만 스키마 또는 스키마를 원하는 그래서 데이터베이스 <<<의 사본을 만들 수

CREATE DATABASE MyAdventureWorks 
    ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'), 
    (FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf') 
    FOR ATTACH; 

https://docs.microsoft.com/en-us/sql/relational-databases/databases/attach-a-database

+0

백업 또는 mdf ldf 파일 스트림 파일을 사용하고 싶지 않습니다. 테이블 형식의 데이터를 복제하는 유일한 방법을 찾고 있습니다. – LaBracca

관련 문제