Compartir vía


Introducción a los scripts anteriores y posteriores a la implementación

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Base de datos de Azure SQL de Microsoft Fabric

Los scripts previos y posteriores a la implementación son scripts de SQL que se incluyen en el proyecto y se ejecutan durante la implementación. Los scripts previos y posteriores a la implementación se incluyen en .dacpac, pero no se compilan ni se validan con el modelo de objetos de la base de datos. Un script anterior a la implementación se ejecuta antes de ejecutar el plan de implementación, pero el plan de implementación se calcula antes de que se ejecute el script. Se ejecuta un script posterior a la implementación una vez completado el plan de implementación.

Ejemplo y sintaxis del archivo de proyecto SQL

Un archivo de proyecto SQL puede tener un único script anterior a la implementación y un único script posterior a la implementación especificados.

En el ejemplo siguiente de un archivo de proyecto SQL se agrega el archivo prep-db.sql como script previo a la implementación.

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

En el ejemplo siguiente de un archivo de proyecto de SQL se agrega el archivo populate-app-settings.sql como script posterior a la implementación.

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

Se pueden ejecutar varios archivos como parte de un script anterior o posterior a la implementación mediante un script SQLCMD que llama a cada archivo por orden.

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

Esos archivos deben excluirse de la compilación del modelo de base de datos configurando la propiedad Build Action con el valor None en las propiedades de archivo de Visual Studio o agregando una entrada para el archivo en el archivo .sqlproj con el atributo Build con el valor None.

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

Adición de scripts anteriores y posteriores a la implementación

En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Agregar>Script. Seleccione script anterior a la implementación o script posterior a la implementación.

El archivo de script se agrega al proyecto y se abre en el editor de consultas, donde puede completar el script. Este script se ejecutará antes o después de que se ejecute el plan de implementación cada vez que se implemente el proyecto.

En el Explorador de soluciones, haga clic con el botón derecho en el nodo del proyecto y seleccione Agregar y, a continuación, Nuevo elemento. En el cuadro de diálogo Agregar nuevo elemento, seleccione Mostrar todas las plantillas y a continuación Tabla. Seleccione script anterior a la implementación o script posterior a la implementación.

El archivo de script se agrega al proyecto y se abre en el editor de consultas, donde puede completar el script. Este script se ejecutará antes o después de que se ejecute el plan de implementación cada vez que se implemente el proyecto.

En la vista Proyectos de base de datos de VS Code o Azure Data Studio, haga clic con el botón derecho en el proyecto y seleccione Agregar script anterior a la implementación o Agregar script posterior a la implementación. Proporcione un nombre de script sin la extensión de archivo.

El archivo de script se agrega al proyecto y se abre en el editor de consultas, donde puede completar el script. Este script se ejecutará antes o después de que se ejecute el plan de implementación cada vez que se implemente el proyecto.

Edite el archivo .sqlproj directamente para agregar scripts anteriores o posteriores a la implementación. Agregue un elemento <PreDeploy> o <PostDeploy> o a la sección <ItemGroup> del archivo .sqlproj.

Por ejemplo, para agregar el script scripts\before-script.sql a nuestro proyecto como script anterior a la implementación:

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

Este script scripts\before-script.sql se ejecuta antes de ejecutar el plan de implementación cada vez que se implementa el proyecto.