Partilhar via


Visão geral dos scripts pré e pós-implantação

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do Azurebanco de dados SQL no Microsoft Fabric

Os scripts pré e pós-implantação são scripts SQL incluídos no projeto a ser executado durante a implantação. Os scripts pré/pós-implantação estão incluídos no .dacpac, mas não são compilados nem validados com o modelo de objetos do banco de dados. Um script de pré-implantação é executado antes que o plano de implantação seja executado, mas o plano de implantação é calculado antes da execução do script. Um script pós-implantação é executado após a conclusão do plano de implantação.

Exemplo de arquivo de projeto SQL e sintaxe

Um arquivo de projeto SQL pode ter um único script de pré-implantação e um único script de pós-implantação especificado.

O exemplo a seguir de um arquivo de projeto SQL adiciona o arquivo prep-db.sql como um script de pré-implantação.

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

O exemplo a seguir de um arquivo de projeto SQL adiciona o arquivo populate-app-settings.sql como script pós-implantação.

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

Vários arquivos podem ser executados como parte de um script pré ou pós-implantação usando um script SQLCMD que chama cada arquivo em ordem.

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

Esses ficheiros devem ser excluídos da compilação do modelo de base de dados ao definir a propriedade Build Action para Remove nas propriedades do ficheiro no Visual Studio ou ao adicionar uma entrada para o ficheiro no ficheiro .sqlproj com o atributo Build definido para Remove. Quando o projeto SQL é criado, os arquivos adicionais são combinados em seu script de referência pré ou pós-implantação no .dacpac pelo SDK do projeto Microsoft.Build.Sql.

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

Sugestão

Você pode validar os scripts de pré e pós-implantação após a compilação do projeto, alterando a extensão do ficheiro .dacpac para .zip e desarquivar o .zip para uma pasta. Um único .sql arquivo está presente para scripts de pré e pós-implantação e deve conter todo o conteúdo Transact-SQL de todos os arquivos referenciados no projeto SQL de origem.

Adicionar scripts pré e pós-implantação

No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e selecione Adicionar>Script. Selecione Script de pré-implantação ou Script de pós-implantação.

O arquivo de script é adicionado ao projeto e aberto no editor de consultas, onde você pode concluir o script. Esse script será executado antes ou depois que o plano de implantação for executado sempre que o projeto for implantado.

No Gerenciador de Soluções , clique com o botão direito do mouse no nó do projeto e selecione Adicionare, em seguida, Novo Item. A caixa de diálogo Adicionar Novo Item é exibida, selecione Mostrar Todos os Modelos. e, em seguida, Tabela. Selecione Script de pré-implantação ou Script de pós-implantação.

O arquivo de script é adicionado ao projeto e aberto no editor de consultas, onde você pode concluir o script. Esse script será executado antes ou depois que o plano de implantação for executado sempre que o projeto for implantado.

Na vista Projetos de Base de Dados do VS Code ou do Azure Data Studio, clique com o botão direito do rato no projeto e selecione Adicionar Script de Pré-Implementação ou Adicionar Script de Pós-Implementação. Forneça um nome de script sem a extensão do arquivo.

O arquivo de script é adicionado ao projeto e aberto no editor de consultas, onde você pode concluir o script. Esse script será executado antes ou depois que o plano de implantação for executado sempre que o projeto for implantado.

Edite o .sqlproj arquivo diretamente para adicionar scripts pré ou pós-implantação. Adicione um <PreDeploy> ou <PostDeploy> item à <ItemGroup> seção do .sqlproj arquivo.

Por exemplo, para adicionar o script scripts\before-script.sql ao nosso projeto como um script de pré-implantação:

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

Esse script scripts\before-script.sql é executado antes que o plano de implantação seja executado sempre que o projeto for implantado.