방법: 데이터베이스 스크립트를 데이터 계층 응용 프로그램으로 가져오기

기존 DAC(데이터 계층 응용 프로그램) 패키지를 가져오는 것뿐 아니라 하나 이상의 기존 스크립트에서 데이터베이스 개체를 가져올 수도 있습니다.예를 들어, 다른 타사 도구를 사용하여 만든 기존 데이터베이스 정의를 DAC 프로젝트로 가져오려는 경우 이 방법을 사용할 수 있습니다.지정한 스크립트가 구문 분석되고, 데이터베이스 개체를 만드는 모든 문이 식별되어 DAC 프로젝트로 가져와집니다.SQL 스크립트 파일 가져오기 마법사를 사용하거나 명령 창에서 자동화 명령을 사용하여 스크립트를 가져올 수 있습니다.

개체 정의에 오류가 포함되어 있으면 해당 개체를 건너뜁니다.오류가 형식 정의와 관련이 있으면 데이터베이스 프로젝트의 ScriptsIgnoredOnImport.sql 파일에 문이 저장됩니다.개체 형식은 유효하지만 존재하지 않는 테이블을 참조하는 뷰와 같이 개체 정의에 오류가 포함되어 있으면 오류 목록 창에 오류 메시지가 나타납니다.

DAC 프로젝트에서 지원되는 개체만 가져올 수 있습니다.지원되는 개체 목록에 대한 자세한 내용은 데이터 계층 응용 프로그램에서 지원되는 기능을 참조하십시오.

가져오지 않은 문은 솔루션의 ScriptsIgnoredOnImport.sql 파일에 저장됩니다.

데이터베이스 개체 정의 가져오기

SQL 스크립트 파일 가져오기 마법사를 사용하려면

  1. 프로젝트 메뉴에서 스크립트 가져오기를 클릭합니다.

    SQL 스크립트 파일 가져오기 마법사가 나타납니다.

    참고

    솔루션 탐색기 또는 스키마 뷰에서 DAC 프로젝트를 마우스 오른쪽 단추로 클릭하고 스크립트 가져오기를 클릭할 수도 있습니다.

  2. 마법사 소개 페이지를 읽은 후 다음을 클릭하여 파일 선택 페이지로 이동합니다.

  3. 여러 스크립트를 가져오려면 7단계로 이동합니다.

  4. 단일 파일을 클릭합니다.

  5. 파일 이름에 경로를 포함하여 가져올 스크립트의 파일 이름을 입력합니다.찾아보기를 클릭하여 파일을 찾을 수도 있습니다.

  6. 11단계로 이동합니다.

  7. 여러 파일을 클릭합니다.

  8. 찾아보기를 클릭하고 가져올 스크립트가 포함된 폴더로 이동합니다.

    중요

    스크립트 자체가 아니라 가져올 스크립트가 포함된 폴더를 선택합니다.

  9. 폴더 선택을 클릭합니다.

  10. 파일 및 폴더 목록에서 가져올 스크립트 또는 스크립트가 포함된 하위 폴더에 해당하는 확인란을 선택합니다.

  11. 다음을 클릭합니다.

  12. DAC 프로젝트에서 이름과 형식이 같은 개체를 가져온 개체로 바꾸려면 프로젝트에 이미 있는 개체 덮어쓰기 확인란을 선택합니다.

  13. 확장 속성을 가져오지 않으려면 확장 속성 가져오기 확인란의 선택을 취소합니다.

  14. 권한을 가져오려면 권한 가져오기 확인란을 선택합니다.

  15. 권한을 가져와 프로젝트 모드에 추가하려면 가져온 권한을 프로젝트 모델 스크립트에 추가 확인란도 선택해야 합니다.

    참고

    권한을 가져와 모델에 추가하는 경우 DAC 프로젝트를 여는 데 걸리는 시간이 훨씬 길어질 수 있습니다.

  16. 인코딩에서 스크립트 파일을 만들 때 사용된 인코딩을 클릭합니다.

  17. 마침을 클릭하여 지정한 스크립트에서 데이터베이스 개체 정의를 가져옵니다.

    스크립트가 구문 분석되고 개체 정의가 DAC 프로젝트에 추가되는 동안 진행률 페이지가 나타납니다.스크립트에서 데이터베이스 정의를 가져오는 경우 로그 파일이 만들어집니다.로그 파일은 프로젝트 폴더 내의 스크립트 가져오기 로그 하위 폴더에 저장됩니다.

    참고

    소스 파일은 수정되지 않으며 읽기 전용 공유 모드로 열립니다.

Visual Studio 자동화 모델을 사용하려면

  1. DAC 프로젝트를 만들거나 엽니다.

    자세한 내용은 방법: 데이터 계층 응용 프로그램 프로젝트 만들기를 참조하십시오.

  2. 보기 메뉴를 열고 다른 창을 가리킨 다음 명령 창을 클릭합니다.

  3. 명령 창에서 다음 명령을 입력합니다.

    Project.ImportScript /FileName "MyScript.sql"
    

    MyScript.sql을 가져올 스크립트의 이름으로 바꿉니다.

    참고

    가져오기 작업을 제어하는 추가 옵션을 명령에 지정할 수 있습니다.자세한 내용은 Automation Command Reference for Database Features of Visual Studio Team System를 참조하십시오.파일 이름을 지정하지 않으면 데이터베이스 가져오기 마법사가 나타납니다.

    지정한 스크립트의 개체 및 설정이 해당 명령을 실행할 때 솔루션 탐색기에서 선택한 프로젝트로 가져와집니다.스크립트를 가져올 때 만들어지는 개체와 관련된 모든 오류가 오류 목록 창에 표시됩니다.

    이때 DAC 프로젝트를 빌드 및 배포하려면 먼저 DAC 프로젝트 설정을 구성해야 합니다.자세한 내용은 방법: 데이터 계층 응용 프로그램 프로젝트 만들기를 참조하십시오.

문제 및 제한 사항

SQL 스크립트 파일 가져오기 마법사는 지정한 스크립트에서 DDL(데이터 정의 언어)CREATE 문을 모두 검색하여 해당 개체를 프로젝트에 추가합니다.다음 제한 사항이 적용됩니다.

  • 인식되지 않는 문은 데이터베이스 프로젝트의 ScriptsIgnoredOnImport.sql 파일에 저장됩니다.

  • 각 DAC는 모든 개체를 단일 데이터베이스에 만듭니다.SQL 스크립트 파일 가져오기 마법사는 스크립트를 처리할 때 이러한 제한 사항을 적용합니다.모든 개체가 DAC 프로젝트로 가져와집니다.스크립트에 여러 데이터베이스에 대한 정의가 포함되어 있으면 CREATE DATABASE 및 USE 문은 무시되고 모든 개체가 DAC 프로젝트에 추가됩니다.여러 데이터베이스 정의가 포함된 스크립트를 단일 DAC 프로젝트로 가져오는 경우 많은 오류가 표시될 수 있습니다.

  • 스크립트에서 CREATE 문 뒤에 만든 개체에 대한 DROP 문이 포함되어 있어도 해당 개체를 가져옵니다.

  • 테이블에 제약 조건을 추가하거나 전체 텍스트 인덱스 열을 지정하는 ALTER TABLE 문만 가져옵니다.제약 조건의 경우 단일 제약 조건을 추가하는 문만 인식됩니다.테이블에 여러 제약 조건을 추가하는 문은 건너뜁니다.

  • 일괄 처리는 GO 문으로 구분해야 합니다.

    참고

    스크립트에 포함된 CREATE 문 대신 스크립트 실행 결과를 가져오려면 스크립트를 실행하여 데이터베이스를 만든 다음 SQL Server Management Studio의 데이터 계층 응용 프로그램 추출 마법사를 사용하여 결과 데이터베이스에서 DAC 패키지를 추출합니다.그런 다음 DAC 패키지를 DAC 프로젝트로 가져올 수 있습니다.