Cómo: Implementar cambios en bases de datos nuevas o existentes
Si ha realizado cambios en el proyecto de base de datos, deberá implementarlos en el servidor de bases de datos. Cuando implementa el proyecto de base de datos, el esquema que definió se compara con el esquema de destino para identificar el conjunto de acciones que se deben producir para sincronizar los esquemas. Esas acciones se combinan con el script anterior y el script posterior a la implementación para formar una secuencia de comandos de distribución completa. Si la base de datos de destino no existe o se ha decidido volver a crearla siempre, el esquema que se define en el archivo .dbschema se utiliza para crear la base de datos. Al crear una nueva base de datos, el script de implementación intentará colocar una base de datos existente con el mismo nombre si ya existe una. Si el proyecto de base de datos, sus propiedades o su contenido han cambiado desde la última compilación o implementación, debe generar un archivo .dbschema actualizado cuando se compile el proyecto.
En un entorno de producción, no implementaría directamente en la base de datos de destino. En cambio, generaría el script de implementación (un archivo .SQL), lo revisaría y actualizaría opcionalmente y después lo implementaría con el Editor de Transact SQL. Alternativamente, también podría utilizar una herramienta como SQL Server Management Studio.
También podría implementar la base de datos utilizando la herramienta VSDBCMD.EXE. Puede especificar el archivo .dbschema que desea usar para implementar la base de datos. Puede utilizar VSDBCMD para implementar desde un equipo que no tiene Visual Studio instalado. Para obtener más información, vea Cómo: Preparar una base de datos para la implementación desde un símbolo del sistema mediante VSDBCMD.EXE.
Importante |
---|
Antes de implementar el proyecto de base de datos, debe establecer las propiedades del proyecto para especificar la conexión a la base de datos de destino y el nombre de la base de datos. Si generó el proyecto de base de datos mediante el Asistente para nuevo proyecto de base de datos, seguramente ya ha especificado las propiedades del proyecto. Puede cambiar las propiedades del proyecto en cualquier momento. Para obtener más información, vea Cómo: Configurar propiedades de base de datos para proyectos de base de datos. |
Permisos necesarios
Para implementar el proyecto de base de datos, debe disponer de los permisos necesarios para crear la base de datos (en las implementaciones nuevas) y para crear, modificar y eliminar los objetos de esquema de esa base de datos.
Implementación en una base de datos única
Puede implementar una base de datos utilizando Visual Studio, desde un símbolo del sistema, o ejecutar el script de implementación en un editor de Transact-SQL. Puede utilizar el editor de Transact-SQL incluido en Visual Studio o usar una herramienta como SQL Server Management Studio.
Para implementar el proyecto de base de datos en una base de datos nueva o existente
En el Explorador de soluciones, haga clic en el proyecto de base de datos que desee implementar.
Si creó una configuración personalizada, puede especificar que se utilice haciendo clic en su nombre en la lista Configuraciones de soluciones de la barra de herramientas Estándar. De manera predeterminada hay una sola configuración para el proyecto de base de datos y ya se encuentra seleccionada.
En el menú Generar, haga clic en Implementar.
Se genera el script de salida para el proyecto de base de datos (si no existe o si no está actualizado) y, a continuación, se implementa. La Ventana de salida muestra los resultados de la implementación de la manera siguiente:
nombreDelProyecto -> D:\Documents and Settings\nombreDeUsuario\Mis documentos\Visual Studio 2008\Projects\nombreDeLaSolución\nombreDelProyecto\sql\nombreDelProyecto.dbschema
------ Operación Implementar iniciada: proyecto: nombreDelProyecto, Configuración: Depurar Cualquier CPU ------
Script de implementación nombreDelProyecto.sql generado
Creando nombreDelProyecto
Creando dbo.nombreDelObjeto
.
.
.
.
========== Generar: 1 correctos o actualizados, 0 incorrectos, 0 omitidos ==========
========== Implementar: 1 correctos, 0 incorrectos, 0 omitidos ==========
Para implementar el proyecto de base de datos en una base de datos nueva o existente desde la línea de comandos
Abra una ventana Símbolo del sistema y vaya al directorio del proyecto.
En el símbolo del sistema, escriba la siguiente línea de comandos de ejemplo para implementar un proyecto de base de datos (donde proyectoDeBaseDeDatos es el nombre del proyecto):
MSBuild /t:Build;Deploy DatabaseProject.dbproj
Nota
MSBuild.exe debe encontrarse en la ruta de acceso que indique la variable de entorno PATH. Además, debe especificar TargetDatabase y TargetConnectionString en el proyecto de base de datos o como parte de la línea de comandos. Para obtener más información acerca de la sintaxis de línea de comandos para crear scripts de generación, vea Descripción general de la generación e implementación de bases de datos.
Aparecerán resultados similares a los siguientes:
Microsoft (R) Build Engine Version 3.5.21022.8
[Microsoft .NET Framework, Version 2.0.50727.1433]
Copyright (C) Microsoft Corporation 2007. All rights reserved.
Build started 5/20/2008 1:36:58 PM.
Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\ProjectName.dbproj" on node 0 (Deploy target(s)).
Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\ProjectName.dbproj" (1) is building "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\sql\ProjectName.deploymanifest" (2) on node 0 (DspDeploy target(s)).
Deployment script ProjectName.sql generated
:
(1 row(s) affected)
Done Building Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\sql\ProjectName.deploymanifest" (DspDeploy
target(s)).
Done Building Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\ProjectName.dbproj" (Deploy target(s)).
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:07.32
Para implementar la base de datos ejecutando el script de implementación
Abra el script de implementación en el editor de Transact-SQL de su elección.
Nota
En este procedimiento se supone que usa Transact-SQL que se distribuye con Visual Studio.
El script de implementación de compilación se denomina ProjectName.sql y está en SolutionName\ProjectName\sql\Configuration. Configuration es el nombre de la configuración de compilación, como depuración o lanzamiento.
En la barra de menú, elija Datos, Editor de Transact-SQL, SQLCMD Mode si aún no están habilitados.
Importante Si no se habilita el modo SQLCMD, aparecerán errores al ejecutar el script de implementación porque las instrucciones :setvar no se admiten.
En la barra de menú, elija Datos, Editor de Transact-SQL, Ejecutar SQL para ejecutar el script de implementación. Cuando se le pida, especifique la información de conexión del servidor en el que desea implementar.
El script de implementación se ejecuta y se crea la base de datos.
Implementar en varias bases de datos o en varios servidores
Puede implementar el esquema en varias bases de datos o en varios servidores. Si va a implementar en un número reducido de servidores o bases de datos que no cambian (por ejemplo, si desea implementar en su servidor de desarrollo personal y en un servidor de ensayo), puede crear varias configuraciones de compilación. Cada configuración de compilación puede tener una base de datos o un servidor de destino distinto. Si necesita implementar en un gran número de servidores o si los nombres del servidor o la base de datos de destino cambian regularmente, debe usar un enfoque distinto. Estos enfoques se describen a continuación.
Para crear varias configuraciones de compilación para implementar en varios servidores o en varias bases de datos
Abra el proyecto de base de datos en Visual Studio.
En el menú Generar, haga clic en Administrador de configuración.
Aparece el cuadro de diálogo Administrador de configuración.
En la lista Configuración de soluciones activas, haga clic en <Nuevo>.
Aparecerá el cuadro de diálogo Nueva configuración de la solución.
En Nombre, escriba el nombre de la configuración del primer servidor.
Si las propiedades del proyecto ya están establecidas en la configuración predeterminada, en la lista Copiar configuración de, haga clic en Predeterminada.
Haga clic en Aceptar.
En el cuadro de lista Configuración de soluciones activas, haga clic en <Nuevo>.
Aparecerá el cuadro de diálogo Nueva configuración de la solución.
En Nombre, escriba el nombre de la configuración del segundo servidor.
Si las propiedades del proyecto ya están establecidas en la configuración predeterminada, en la lista Copiar configuración de, haga clic en Predeterminada.
Nota
También puede configurar el nombre de la base de datos y la cadena de conexión para cada configuración con nombre.
Haga clic en Cerrar.
En el Explorador de soluciones, haga clic con el botón secundario en el proyecto de base de datos y, a continuación, haga clic en Propiedades.
Haga clic en la ficha Generar.
En Configuración, haga clic en el nombre de la configuración del primer servidor.
Modifique la conexión de destino y el nombre de la base de datos de forma que coincidan con los de la configuración del primer servidor.
En Configuración, haga clic en el nombre de la configuración del segundo servidor.
Modifique la conexión de destino y el nombre de la base de datos de forma que coincidan con los de la configuración del segundo servidor.
En el menú Archivo, haga clic en Guardar los elementos seleccionados para guardar la configuración.
Ahora puede especificar una configuración en la barra de herramientas Estándar y generar o implementar dicha configuración.
Para implementar en bases de datos desde la línea de comandos utilizando MSBuild
En una ventana de Símbolo del sistema, implemente el script de compilación escribiendo la siguiente línea de comandos (reemplace el nombre del servidor y la configuración de destino con los valores que correspondan).
MSBuild /t:Deploy /p:Configuration=configuraciónDeDestino nombreDeProyectoDeBaseDeDatos.dbproj
Nota
Para implementar en varios servidores, debe reemplazar la propiedad de cadena de conexión de destino especificando la siguiente línea en una ventana de símbolo del sistema: /p:TargetConnectionString="Data Source=nombreDeServidor;Integrated Security=True;Pooling=False". Podría definir una configuración para cada servidor de destino y, a continuación, especificar la configuración que desea implementar.
Para implementar un proyecto de base de datos desde un símbolo del sistema con VSDBCMD
-
Importante Este procedimiento supone que ya ha copiado los archivos necesarios en el equipo desde el que desea ejecutar VSDBCMD. Para obtener más información, vea Cómo: Preparar una base de datos para la implementación desde un símbolo del sistema mediante VSDBCMD.EXE.
Abra una ventana del símbolo del sistema y escriba la línea de comandos siguiente:
VSDBCMD /a:Deploy /dd:+ /manifest:manifestFileName.dbmanifest
El manifiesto de implementación proporciona los demás valores, como el nombre de la base de datos de destino, la cadena de conexión, etc. que puede especificar en la línea de comandos.
Vea también
Tareas
Cómo: Compilar un proyecto de base de datos para generar un archivo de esquema (.dbschema) compilado
Tutorial: Implementar cambios en una base de datos existente con control de versiones
Conceptos
Descripción general de la generación e implementación de bases de datos
Información general acerca de la configuración del proyecto de base de datos
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Junio de 2010 |
Modificada la introducción y agregada más información sobre cómo implementar con VSDBCMD en respuesta a los comentarios de los clientes. |
Comentarios de los clientes. |
Mayo de 2011 |
Agregado procedimiento que explica cómo ejecutar un script de implementación en el editor de Transact-SQL. |
Comentarios de los clientes. |