다음을 통해 공유


배포 전 및 배포 후 스크립트 개요

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric의 SQL 데이터베이스

배포 전 및 배포 후 스크립트는 배포 중에 실행할 프로젝트에 포함된 SQL 스크립트입니다. 배포 전/후 스크립트는 .dacpac에 포함되지만 데이터베이스 개체 모델로 컴파일되거나 유효성이 검사되지 않습니다. 배포 계획이 실행되기 전에 배포 전 스크립트가 실행되지만 스크립트가 실행되기 전에 배포 계획이 계산됩니다. 배포 후 스크립트는 배포 계획이 완료된 후에 실행됩니다.

SQL 프로젝트 파일 샘플 및 구문

SQL 프로젝트 파일에는 단일 배포 전 스크립트와 단일 배포 후 스크립트가 지정될 수 있습니다.

SQL 프로젝트 파일의 다음 예제에서는 배포 전 스크립트로 prep-db.sql 파일을 추가합니다.

...
  <ItemGroup>
    <PreDeploy Include="prep-db.sql" />
  </ItemGroup>

SQL 프로젝트 파일의 다음 예제에서는 배포 후 스크립트로 populate-app-settings.sql 파일을 추가합니다.

...
  <ItemGroup>
    <PostDeploy Include="populate-app-settings.sql" />
  </ItemGroup>
</Project>

각 파일을 순서대로 호출하는 SQLCMD 스크립트를 사용하여 배포 전 또는 배포 후 스크립트의 일부로 여러 파일을 실행할 수 있습니다.

:r .\scripts\script1.sql
:r .\scripts\script2.sql

이러한 파일은 Visual Studio의 파일 속성에서 Build Action 속성을 Remove로 설정하거나, .sqlproj 파일에 파일 항목을 추가하고 해당 파일의 Build 속성을 Remove로 설정하여 데이터베이스 모델 빌드에서 제외되어야 합니다. SQL 프로젝트가 빌드될 때, Microsoft.Build.Sql 프로젝트 SDK는 추가 파일들을 .dacpac에 있는 참조된 배포 전 또는 배포 후 스크립트에 결합합니다.

...
  <ItemGroup>
    <Build Remove="scripts\script1.sql" />
    <Build Remove="scripts\script2.sql" />
  </ItemGroup>
</Project>

팁 (조언)

프로젝트 빌드 후, 파일 확장자를 .dacpac에서 .zip로 변경하고 .zip의 압축을 풀어 폴더에 배치하여 배포 전 및 배포 후 스크립트를 유효성 검사할 수 있습니다. 단일 .sql 파일은 배포 전 및 배포 후 스크립트에 존재하며, 원래 SQL 프로젝트에서 참조된 모든 파일의 전체 Transact-SQL 콘텐츠를 포함해야 합니다.

배포 전 및 배포 후 스크립트 추가

솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가>스크립트를 선택합니다. 배포 전 스크립트 또는 배포 후 스크립트를 선택합니다.

스크립트 파일이 프로젝트에 추가되고 쿼리 편집기에서 열립니다. 여기서 스크립트를 완료할 수 있습니다. 이 스크립트는 프로젝트가 배포될 때마다 배포 계획이 실행되기 전이나 후에 실행됩니다.

솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 추가, 새 항목을 선택합니다. 새 항목 추가 대화 상자가 나타나고 모든 템플릿 표시를 선택합니다. 그런 다음 테이블을 선택합니다. 배포 전 스크립트 또는 배포 후 스크립트를 선택합니다.

스크립트 파일이 프로젝트에 추가되고 쿼리 편집기에서 열립니다. 여기서 스크립트를 완료할 수 있습니다. 이 스크립트는 프로젝트가 배포될 때마다 배포 계획이 실행되기 전이나 후에 실행됩니다.

VS Code 또는 Azure Data Studio의 데이터베이스 프로젝트 보기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 배포 전 스크립트 추가 또는 배포 후 스크립트 추가를 선택합니다. 파일 확장명 없이 스크립트 이름을 제공합니다.

스크립트 파일이 프로젝트에 추가되고 쿼리 편집기에서 열립니다. 여기서 스크립트를 완료할 수 있습니다. 이 스크립트는 프로젝트가 배포될 때마다 배포 계획이 실행되기 전이나 후에 실행됩니다.

.sqlproj 파일을 직접 편집하여 배포 전 또는 배포 후 스크립트를 추가합니다. <PreDeploy> 파일의 <PostDeploy> 섹션에 <ItemGroup> 또는 .sqlproj 항목을 추가합니다.

예를 들어 프로젝트에 스크립트 scripts\before-script.sql을(를) 배포 전 스크립트로 추가하려면 다음을 수행합니다.

...
  <ItemGroup>
    <PreDeploy Include="scripts\before-script.sql" />
  </ItemGroup>

이 스크립트 scripts\before-script.sql은(는) 프로젝트가 배포될 때마다 배포 계획이 실행되기 전에 실행됩니다.