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.
Importante |
---|
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
Crear y modificar objetos de servidor y base de datos
Al modificar las definiciones de objeto del proyecto y posteriormente implementar estos cambios en una base de datos o un servidor de destino, actualiza la base de datos o el servidor.Refactorizar código de base de datos y datos
Puede utilizar la refactorización de base de datos para eliminar algunas tareas repetitivas y propensas a errores, como por ejemplo cambiar el nombre de todas las referencias a un objeto, calificar totalmente los nombres, expandir los caracteres comodín o mover un objeto a un nuevo esquema.Compilar e implementar bases de datos en un entorno de desarrollo aislado
Después de modificar objetos del proyecto, compile e implemente los cambios en el entorno de desarrollo aislado.Analizar el código de base de datos para mejorar la calidad del código
Puede analizar el código de la base de datos para buscar y corregir problemas comunes de diseño, nomenclatura y rendimiento.
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