Compartir a través de


Información general acerca de la comparación de esquemas de base de datos

Actualización: noviembre 2007

Puede utilizar Visual Studio Team System Database para comparar los esquemas de dos bases de datos y, a continuación, decidir si aplicar algunos o todos los objetos de esquema del origen en el destino. Para obtener un escenario del ejemplo, vea ¿Por qué comparar esquemas de base de datos?

Puede comparar los esquemas de:

  • dos bases de datos, lo que incluye dos versiones de la misma base de datos

  • un proyecto de base de datos de Visual Studio y una base de datos

Cuando se configura la comparación, se utiliza el cuadro de diálogo Comparación de esquemas para designar el origen y el destino. Para obtener más información, vea Cómo: Comparar los esquemas de dos bases de datos.

Una vez finalizada la comparación de esquemas, muestra los resultados de la comparación para que los examine. Para obtener más información, vea Cómo: Ver diferencias de esquemas. A continuación, puede propagar elementos de esquema del origen en el destino. Para obtener más información, vea Cómo: Sincronizar esquemas de base de datos.

¿Por qué comparar esquemas de base de datos?

A continuación se describe un escenario en el que desearía comparar esquemas de base de datos. En este caso, se comparan una base de datos y un proyecto de base de datos, en lugar de dos bases de datos.

Desarrollo de bases de datos en equipo

Usted es programador de bases de datos que está usando un proyecto de base de datos de Database Edition para ayudar a crear una base de datos. Con el tiempo, su equipo genera versiones sucesivas de la base de datos y las implementa en servidores de pruebas. Otros miembros del equipo también contribuyen al diseño de la base de datos.

Acaba de realizar una serie de cambios en el esquema de la base de datos y de probar los cambios en su propio equipo. Dado que no ha encontrado ningún error, desea publicar las actualizaciones en un servidor de pruebas para que el personal de control de calidad del equipo pueda comprobarlas.

Abre el proyecto de base de datos y, mediante el cuadro de diálogo Nueva comparación de esquemas, establece una conexión con el servidor de pruebas. Compara su proyecto (el origen) con la base de datos implementada (el destino) y determina que muchos objetos difieren entre las dos entidades. Pero también ve que la mayoría de las diferencias se encuentran en objetos de los que no es responsable. Otras personas realizaron esos cambios y no desea sobrescribirlos.

Ahora, simplemente selecciona los objetos en los que ha trabajado y hace clic en Escribir actualizaciones. Esta acción actualiza su parte de la base de datos y deja las otras partes como estaban. Ahora, su trabajo está implementado y listo para ser probado.

En la sección siguiente se describe cómo Team Edition for Database Professionals muestra qué objetos de esquema han cambiado y le ayuda a decidir qué acciones debe realizar.

Controlar la comparación de esquemas

Puede especificar opciones que controlen el proceso de comparación de esquemas y el proceso de generación de scripts en dos niveles. Para establecer opciones de manera global, abra el menú Herramientas, haga clic en Opciones, expanda Herramientas para bases de datosy, a continuación, haga clic en Comparación de esquemas. Las opciones que se establecen globalmente afectan a todas las operaciones de comparación de esquemas subsiguientes a menos que las reemplace para una comparación concreta.

Vistas de comparación de esquemas

Después de comparar dos esquemas, la ventana Comparación de esquemas muestra los resultados en una cuadrícula. La ventana también muestra información acerca de los objetos de las bases de datos, incluido el script para sincronizarlos.

  • Understanding Schema Compare Results

  • Viewing Object Definitions

  • Previewing the Update Script

Introducción a los resultados de la comparación de esquemas

La ventana Comparación de esquemas ocupa el área de edición principal de Visual Studio. La ventana muestra todos los objetos de ambos esquemas, organizados en carpetas expansibles. Estos objetos son tablas, vistas, procedimientos almacenados, funciones, tipos definidos por el usuario, reglas, valores predeterminados, catálogos de texto completo, usuarios y funciones.

En esta ventana, las columnas muestran la información siguiente acerca de cada objeto:

  • La primera columna, Estado, muestra el estado de comparación de los objetos comparados:

    • Igual. Los objetos de origen y de destino son estructuralmente iguales.

    • Diferente. Los objetos de origen y de destino son estructuralmente distintos.

    • Falta. El objeto existe en el destino pero no en el origen.

    • Nuevo. El objeto existe en el origen pero no en el destino.

    Nota:

    Los objetos se consideran iguales o diferentes en el contexto de cualquier configuración de comparación de esquemas que haya establecido. Para obtener más información, vea Controlar la comparación de esquemas.

  • La segunda columna muestra los nombres de los objetos de esquema en el origen, organizados jerárquicamente por tipo de objeto. En esta columna, los nodos se pueden expandir y contraer para mostrar únicamente los tipos de objeto que desea ver.

  • La tercera columna, Acción de actualización, muestra la acción que, para un objeto determinado, sincronizaría la estructura de ese objeto entre los dos esquemas. (Los cambios sólo se escriben en el destino.) Los valores de la columna Acción de actualización se corresponden con los valores de la columna Estado. Para cada objeto, puede elegir la acción Omitir, que deja el objeto en el destino tal como se encontraba antes de la comparación. Quizás no pueda omitir una actualización si la casilla Incluir dependencias está activada. (Para comprobar el estado de esta casilla, abra el menú Herramientas y haga clic en Opciones.) Por ejemplo, si la base de datos de origen contenía una nueva tabla con índices, claves y desencadenadores, si agrega los índices, las claves y los desencadenadores, no puede omitir la tabla.

    Nota:

    Al cambiar los valores de la columna Acción de actualización, se cambiará el script de actualización que se ejecutará. En otros términos, cambia los resultados que aparecerían al hacer clic en Escribir actualizaciones. Para obtener más información, vea Cómo: Sincronizar esquemas de base de datos.

    En la tabla siguiente se resumen estas acciones:

Estado de la comparación

Acciones de actualización disponibles (la predeterminada aparece en negrita)

Descripción de la acción predeterminada

Igual

Omitir

Omitir, la acción predeterminada para objetos que son iguales, deja el objeto sin modificar.

Diferente

Actualizar, Omitir

Actualizar, la acción predeterminada para objetos que no son iguales, cambia la estructura del objeto en la base de datos de destino. Por ejemplo, la acción Actualizar podría agregar, eliminar o cambiar de nombre una columna de una tabla.

Falta

Eliminar, Omitir

Eliminar, la acción predeterminada para objetos que no existen en la base de datos de origen, elimina el objeto en la base de datos de destino.

Nuevo

Crear, Omitir

Crear, la acción predeterminada para objetos que no existen en la base de datos de destino, crea el objeto en la base de datos de destino.

  • La cuarta columna muestra los nombres de los objetos de esquema del destino.

Ver definiciones de objeto

También puede ver la definición SQL de cada objeto de base de datos que se muestra en la ventana Comparación de esquemas. Al hacer clic en la fila del objeto en la ventana de documento principal, su definición aparece en el panel Definiciones de objeto, que es de sólo lectura. El lado izquierdo del panel Definiciones de objeto muestra la definición de un objeto seleccionado en el origen y el lado derecho muestra la definición de un objeto seleccionado en el destino. Puede recorrer simultáneamente ambas definiciones utilizando la barra de desplazamiento situada en cada lado. Se resaltan las líneas que difieren en las definiciones de objeto de origen y de destino.

Las definiciones de objeto reflejan el estado del objeto en el momento en que se ejecutó la comparación. No cambian al modificar los valores de la columna Acción de actualización o si el objeto sufre cambios fuera de esta sesión de comparación de esquemas.

Obtener una vista previa del script de actualización

Al comparar los esquemas, también se genera automáticamente un script de sincronización y se muestra en la ventana Script de actualización de esquema. Este script de Lenguaje de definición de datos (DDL) se utilizaría para actualizar el destino. El script sólo contiene objetos cuyo estado de comparación sea Actualizar, Eliminar o Crear. Los elementos que se van a omitir no aparecen en la ventana Script de actualización de esquema.

Al cambiar los valores de la columna Acción de actualización, la ventana Script de actualización de esquema refleja los cambios.

Nota:

Podría tardar unos segundos en actualizarse el contenido del panel Vista previa de script, dependiendo de la magnitud de los cambios en la columna Acción de actualización.

Aunque puede modificar el script DDL cambiando las acciones de actualización, no puede editarlo directamente en esta ventana, porque el panel Vista previa de script es de sólo lectura. Si desea editar el script de actualización, haga clic en Exportar a editor y, después, modifíquelo en el editor de Transact-SQL (T-SQL).

Actualizar los resultados de la comparación

Puede actualizar la vista de las diferencias entre el esquema de origen y de destino. Después de haber comparado el origen y el destino una vez, quizás desee actualizar la vista si uno de los dos esquemas, o ambos, cambian. También podría desear actualizar los resultados si cambia las opciones de comparación de esquemas. Al hacer clic en Actualizar, la información de configuración indicada previamente se reutiliza para generar nuevos datos de comparación.

Desde la última comparación de esquemas, es posible que se hayan agregado o eliminado objetos de base de datos en el origen. En este caso, al hacer clic en Actualizar, Comparación de esquemas intenta incluir los nuevos objetos y excluir los objetos eliminados en la nueva comparación, según corresponda. No obstante, si ha cambiado el valor de Acción de actualización para un objeto determinado, ese valor se mantiene independientemente de los cambios que se hayan producido en el objeto desde la última comparación de esquemas.

Propagar esquemas de base de datos de manera segura

Al propagar esquemas de base de datos, se pueden perder datos. Para evitarlo, debería prestar mucha atención a los nombres de los objetos del origen y del destino, especialmente justo antes de actualizar el esquema en el destino.

Supongamos, por ejemplo, que el destino contiene una tabla denominada Order_Details. En la base de datos de origen, cambió su nombre a Order Details, sin el carácter de subrayado. Después, compara las dos bases de datos. Antes de propagar el esquema del origen al destino los datos de ambas tablas son idénticos. Sin embargo, al escribir las actualizaciones del esquema en el destino, se elimina la tabla Order_Details y se crea una nueva tabla denominada Order Details. Podría perder todos los datos de la tabla Order_Details.

Para evitar la pérdida de datos, puede abrir el menú Herramientas, hacer clic en Opciones y activar la casilla Bloquear actualizaciones de esquema si pueden dar lugar a pérdida de datos. Además, siempre debería realizar una copia de seguridad de la base de datos antes de implementar en ella los cambios.

Vea también

Tareas

Cómo: Comparar los esquemas de dos bases de datos

Conceptos

Introducción a la terminología de Database Edition

Otros recursos

Descripción general de la comparación de datos de bases de datos