방법: 스크립트에서 데이터베이스 개체 가져오기
기존 데이터베이스에서 데이터베이스 스키마를 가져올 수 있을 뿐 아니라 하나 이상의 기존 스크립트에서 데이터베이스 개체를 가져올 수도 있습니다. 예를 들어 이 방법을 사용하면 다른 타사 도구로 만든 기존 데이터베이스 정의를 통해 해당 데이터베이스 개체를 데이터베이스 프로젝트로 가져올 수 있습니다. 지정한 스크립트의 구문이 분석되고 데이터베이스 개체를 만드는 문이 식별되어 데이터베이스 프로젝트로 가져오게 됩니다. SQL 스크립트 파일 가져오기 마법사를 사용하거나 명령 창에서 자동화 명령을 사용하여 스크립트를 가져올 수 있습니다.
정의에 오류가 포함되어 있는 개체는 생략됩니다. 오류가 형식 정의에 관련된 경우 데이터베이스 프로젝트의 ScriptsIgnoredOnImport.sql 파일에 문이 추가됩니다. 존재하지 않는 테이블을 참조하는 뷰와 같이 개체 형식은 유효하지만 개체 정의에 오류가 포함되어 있는 경우 오류 목록 창에 오류 메시지가 표시됩니다.
가져올 수 없는 문은 솔루션의 ScriptsIgnoredOnImport.sql 파일에 저장됩니다.
데이터베이스 개체 정의 가져오기
SQL 스크립트 파일 가져오기 마법사를 사용하려면
프로젝트 메뉴에서 스크립트 가져오기를 클릭합니다.
SQL 스크립트 파일 가져오기 마법사가 나타납니다.
참고
또한 솔루션 탐색기나 스키마 뷰에서 데이터베이스 프로젝트를 마우스 오른쪽 단추로 클릭하고 스크립트 가져오기를 클릭합니다.
마법사의 소개 페이지를 읽은 후 다음을 클릭하여 파일 선택 페이지로 이동합니다.
여러 개의 스크립트를 가져오려는 경우 7단계로 이동합니다.
단일 파일을 클릭합니다.
파일 이름에서 가져올 스크립트의 경로 및 파일 이름을 입력합니다. 찾아보기를 클릭하여 파일을 찾을 수도 있습니다.
11단계로 이동합니다.
여러 파일을 클릭합니다.
찾아보기를 클릭하고 가져올 스크립트가 들어 있는 폴더의 상위 폴더로 이동합니다.
중요
스크립트 자체가 아니라 가져올 스크립트가 들어 있는 폴더를 선택해야 합니다.
폴더 선택을 클릭합니다.
파일 및 폴더 목록에서 가져올 스크립트가 들어 있는 스크립트 또는 하위 폴더에 해당하는 확인란을 선택합니다.
다음을 클릭합니다.
데이터베이스 프로젝트에서 이름과 형식이 같은 개체를 가져온 개체로 대체하려면 프로젝트에 이미 있는 개체 덮어쓰기 확인란을 선택합니다.
확장 속성을 가져오지 않으려면 확장 속성 가져오기 확인란의 선택을 취소합니다.
사용 권한을 가져오려면 권한 가져오기 확인란을 선택합니다.
사용 권한을 가져온 후 프로젝트 모드에 추가하려면 가져온 권한을 프로젝트 모델에 추가 확인란도 선택해야 합니다.
참고
사용 권한을 가져온 후 모델에 추가할 경우 데이터베이스 프로젝트를 여는 데 필요한 시간이 상당히 길어질 수 있습니다.
인코딩에서 스크립트 파일을 만드는 데 사용된 인코딩을 클릭합니다.
마침을 클릭하여 사용자가 지정한 스크립트에서 데이터베이스 개체 정의를 가져옵니다.
스크립트의 구문이 분석되고 개체 정의가 데이터베이스 프로젝트에 추가되면 진행률 페이지가 나타납니다. 스크립트에서 데이터베이스 정의를 가져오면 로그 파일이 만들어집니다. 로그 파일은 프로젝트 폴더 내의 스크립트 가져오기 로그 하위 폴더에 저장됩니다.
참고
소스 파일이 수정되지 않고 공유 읽기 전용 모드에서 열립니다.
Visual Studio 자동화 모델을 사용하려면
데이터베이스 프로젝트를 새로 만들거나 엽니다.
자세한 내용은 방법: 빈 데이터베이스 및 서버 프로젝트 만들기 또는 방법: 데이터베이스 또는 서버 프로젝트 열기를 참조하십시오.
보기 메뉴를 열고 다른 창을 가리킨 다음 명령 창을 클릭합니다.
명령 창에서 다음 명령을 입력합니다.
Project.ImportScript /FileName "MyScript.sql"
MyScript.sql을 가져올 스크립트의 이름으로 바꿉니다.
참고
가져오기 작업을 제어하는 추가 옵션을 명령에 지정할 수 있습니다. 자세한 내용은 Visual Studio의 데이터베이스 기능에 대한 자동화 명령 참조를 참조하십시오. 파일 이름을 지정하지 않으면 데이터베이스 가져오기 마법사가 나타납니다.
지정한 스크립트의 개체 및 설정이 해당 명령을 실행할 때 솔루션 탐색기에서 선택한 프로젝트로 가져와집니다. 스크립트를 가져올 때 만들어지는 개체와 관련된 모든 오류가 오류 목록 창에 표시됩니다.
이때 데이터베이스 프로젝트를 빌드 및 배포하려면 먼저 데이터베이스 프로젝트 설정을 구성해야 합니다. 자세한 내용은 방법: 데이터베이스 프로젝트에 대한 데이터베이스 속성 구성을 참조하십시오.
문제 및 제한 사항
SQL 스크립트 파일 가져오기 마법사에서는 지정한 스크립트에서 모든 DDL(데이터 정의 언어) CREATE 문을 찾아 프로젝트에 해당 개체를 추가합니다. 이때 다음과 같은 제한 사항이 적용됩니다.
인식할 수 없는 문은 데이터베이스 프로젝트의 ScriptsIgnoredOnImport.sql 파일에 배치됩니다.
스크립트에는 단일 데이터베이스의 개체 정의가 들어 있는 것으로 가정됩니다. 모든 개체를 현재 데이터베이스 프로젝트로 가져오게 됩니다. 스크립트에 여러 데이터베이스에 대한 정의가 들어 있는 경우 CREATE DATABASE 및 USE 문이 무시되고 모든 개체가 현재 데이터베이스 프로젝트에 추가됩니다. 여러 데이터베이스 프로젝트를 만들려면 파일을 수동으로 분할하여 데이터베이스마다 하나의 파일을 만든 다음 각 파일을 개별 데이터베이스 프로젝트로 따로 가져와야 합니다. 여러 데이터베이스 정의가 있는 스크립트를 단일 데이터베이스 프로젝트로 가져오면 많은 수의 오류가 발생할 수 있습니다.
파일 그룹을 추가하는 ALTER DATABASE 문도 가져오게 됩니다. 스크립트에 CREATE 문이 있고 바로 뒤에 작성된 개체에 대한 DROP 문이 있는 경우 해당 개체를 가져오게 됩니다.
테이블에 제약 조건을 추가하거나 전체 텍스트 인덱스의 열을 지정하는 ALTER TABLE 문만 가져오게 됩니다. 제약 조건의 경우 단일 제약 조건을 추가하는 문만 인식됩니다. 테이블에 여러 제약 조건을 추가하는 문은 생략됩니다.
각 배치는 GO 문으로 구분되어야 합니다.
참고
스크립트에 포함된 CREATE 문이 아닌 스크립트 실행 결과를 가져오려면 스크립트를 실행하여 데이터베이스를 만든 다음 데이터베이스 스키마 가져오기 명령을 사용하여 결과 데이터베이스를 가져옵니다.