Crear y modificar scripts de base de datos

Los scripts de base de datos son archivos adicionales que contienen instrucciones de Transact-SQL o utilidades como SQLCMD que no forman parte de la definición del esquema de base de datos. Puede utilizar scripts de base de datos como parte del proceso de implementación (scripts anteriores a la implementación y scripts posteriores a la implementación) o bien puede almacenar scripts de administración generales en el proyecto de base de datos.

Si cambia el nombre de un objeto de base de datos, puede utilizar la refactorización de base de datos para actualizar automáticamente las referencias a dicho objeto en los scripts.

Scripts de implementación

Cuando se compila un proyecto de base de datos, el script anterior a la implementación, las definiciones de objeto de base de datos y el script posterior a la implementación se compilan en un único archivo de esquema de base de datos (.dbschema). Solamente puede especificar un script anterior a la implementación y un script posterior a la implementación, pero puede usar SQLCMD para incluir otros scripts en estos. Para obtener más información, vea Incluir varios scripts en los pasos anterior o posterior a la implementación. Al generar el proyecto de base de datos, todos los scripts incluidos se combinan en el script de generación.

De forma predeterminada, el proyecto de base de datos contiene un script anterior y un script posterior a la implementación, ambos vacíos. Los nombres de estos scripts son script.predeployment.sql y script.postdeployment.sql.

Un script anterior a la implementación se designa estableciendo la propiedad Build Action del archivo de script en PreDeploy. De igual forma, un script posterior a la implementación se designa estableciendo la propiedad Build Action del archivo de script en PostDeploy. Si designar un script como script anterior o posterior a la implementación y a continuación designa otro script de la misma forma, en el primer script la acción de compilación se establecerá automáticamente en No está en la compilación. Este comportamiento se debe al diseño: en un proyecto de base de datos no puede haber más de un script anterior a la implementación y un script posterior a la implementación.

Nota importanteImportante

Se puede producir un error en la implementación si cambia los nombres o las características de objetos a los que hacen referencia los scripts de implementación pero no actualiza las referencias en los scripts. Por ejemplo, puede insertar datos en una tabla en el script posterior a la implementación. Si cambia el nombre la tabla pero no actualiza el script, se producirá un error en las instrucciones INSERT. Si cambia el nombre de la tabla mediante la refactorización de cambio de nombre, el script de implementación se actualizará.

Incluir varios scripts en los pasos anterior o posterior a la implementación

Para utilizar varios scripts en los pasos anterior o posterior a la implementación, debe designar un script de nivel superior que incluya los demás scripts anteriores o posteriores a la implementación; para ello, se usa la instrucción siguiente:

SQLCMD :r .\nombreDeArchivo.sql

Scripts adicionales

Además de scripts de implementación, puede agregar otros scripts de uso general al proyecto de base de datos. Para organizar estos scripts, puede crear subcarpetas en la carpeta de scripts del proyecto de base de datos. Al abrir cualquiera de estos scripts adicionales en el editor de Transact-SQL, puede conectarse al servidor de bases de datos y ejecutar el script parcial o totalmente. Si dispone de scripts de auditoría que ejecuta de forma rutinaria, este método puede resultar cómodo para guardar cada script con su base de datos asociada y también para colocar el script y la base de datos en el mismo sistema de control de versiones que el esquema de base de datos. Estos scripts tendrán la propiedad Build Action establecida en No está en la generación.

Tareas comunes

En la siguiente tabla, encontrará descripciones de tareas comunes que admiten este escenario y vínculos para obtener más información acerca de cómo puede completar correctamente dichas tareas.

Tarea

Contenido adicional

Especificar scripts anteriores o posteriores a la implementación: puede agregar instrucciones Transact-SQL a los scripts que se ejecutan antes o después de implementar la base de datos. Al importar objetos y valores de una base de datos, es posible que los scripts de implementación se actualicen con instrucciones que no se representan como objetos de base de datos, como permisos, definiciones de rol o firmas.

Especificar scripts de administración o de utilidad: puede agregar scripts de administración y o de utilidad al proyecto de base de datos. También puede actualizar los scripts al refactorizar los objetos del proyecto de base de datos.

Proteger los cambios: puede proteger los scripts en el control de versiones para compartirlos con el equipo. Si incluye los scripts en el control de versiones, puede almacenar y recuperar los scripts de implementación y mantenimiento que coincidían con una versión anterior de la base de datos si debe reparar esa versión.

Solucionar problemas: puede obtener más información sobre cómo solucionar problemas comunes con los proyectos de servidor y de base de datos.

Escenarios relacionados

Vea también

Conceptos

Escribir y cambiar código de base de datos

Cambiar el nombre de todas las referencias a un objeto de base de datos

Compilar e implementar bases de datos en un entorno de desarrollo aislado

Generar e implementar bases de datos en un entorno de ensayo o de producción