적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft 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
은(는) 프로젝트가 배포될 때마다 배포 계획이 실행되기 전에 실행됩니다.