Tutorial: Comparar los datos de dos bases de datos

Este tema se aplica a:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

El tema es aplicable El tema es aplicable El tema no es aplicable El tema no es aplicable

En este tutorial, comparará los datos de dos bases de datos, generará un script de lenguaje de manipulación de datos (DML) a partir de las diferencias y, a continuación, utilizará ese script para llenar el destino con datos del origen.

En este tutorial, realizará los siguientes procedimientos:

  • Agregar datos a la base de datos de origen. En este procedimiento, usará el editor de Transact-SQL para agregar datos a la tabla Customer de la base de datos de origen.

  • Comparar los datos de dos bases de datos. En este procedimiento, buscará diferencias en los datos, las mostrará en una cuadrícula y generará un script DML que las exprese.

  • Actualizar la base de datos de destino. En este procedimiento, verá dos maneras de actualizar el destino para que coincida con el origen.

Requisitos previos

Para poder completar este tutorial, debe tener acceso a los productos siguientes:

  • SQL Server 2008

  • Visual Studio Premium o Visual Studio Ultimate

Antes de comenzar este tutorial, debe seguir los procedimientos descritos en Tutorial: Comparar los esquemas de dos bases de datos. Después de completar este tutorial, tendrá dos bases de datos:

  • El origen, CompareProjectDB, tiene su estructura original pero no contiene ningún dato. Personalizará el proyecto para insertar datos en la base de datos como parte del script posterior a la implementación.

  • El destino, EmptyDB, es la base de datos que creó en el tutorial para comparar el esquema. Después, aplicó solamente el esquema de la base de datos AdventureWorks2008 a EmptyDB. Por tanto, EmptyDB no contiene datos.

Debe tener permisos para leer datos de las bases de datos de origen y de destino.

Agregar datos a la base de datos de origen

Para utilizar el editor de Transact-SQL para agregar datos a la base de datos de origen

  1. En el menú Datos, elija Editor de Transact-SQL y haga clic en Nueva conexión de consulta.

  2. Especifique una conexión al servidor donde se encuentra CompareProjectDB.

  3. Escriba las siguientes instrucciones Transact-SQL en el editor de Transact-SQL:

    use CompareProjectDB;
    go
    delete from [Sales].[Customer];
    go
    exec [Sales].[uspNewCustomer] 'Ken J. Sánchez'
    exec [Sales].[uspNewCustomer] 'Terri Lee Duffy'
    exec [Sales].[uspNewCustomer] 'Roberto Tamburello'
    exec [Sales].[uspNewCustomer] 'Rob Walters'
    exec [Sales].[uspNewCustomer] 'Gail Erickson'
    exec [Sales].[uspNewCustomer] 'Jossef Goldberg'
    exec [Sales].[uspNewCustomer] 'Dylan Miller'
    exec [Sales].[uspNewCustomer] 'Diane Margheim'
    exec [Sales].[uspNewCustomer] 'Gigi Matthew'
    go
    
  4. En la barra de herramientas Editor de Transact-SQL, haga clic en Ejecutar SQL.

    Las instrucciones Transact-SQL quitan los datos existentes de la tabla [Sales].[Customer] y, a continuación, usan el procedimiento almacenado [Sales]. [uspNewCustomer] para agregar nueve clientes. Ahora que la base de datos de origen contiene datos, puede compararla con la base de datos de destino.

Comparar los datos de dos bases de datos

Para comparar los datos de dos bases de datos

  1. En el menú Datos, señale a Comparación de datosy, a continuación, haga clic en Nueva comparación de datos.

    Aparece el asistente Nueva comparación de datos. Por otra parte, la ventana Comparación de datos se abrirá en segundo plano y Visual Studio le asignará automáticamente un nombre, como DataCompare1.

  2. En la lista Base de datos de origen, haga clic en la conexión a la base de datos CompareProjectDB.

    Si la lista Base de datos de origen está vacía, haga clic en Nueva conexión. En el cuadro de diálogo Propiedades de la conexión, identifique el servidor en el que reside la base de datos CompareProjectDB y el tipo de autenticación que se usará para la conexión con la base de datos. A continuación, haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades de la conexión y volver al asistente Nueva comparación de datos.

  3. En la lista Base de datos de destino, haga clic en Server.EmptyDB.dbo.

    Si la lista Base de datos de destino está vacía, haga clic en Nueva conexión. En el cuadro de diálogo Propiedades de la conexión, identifique el servidor en el que reside la base de datos EmptyDB y el tipo de autenticación que se usará para la conexión con la base de datos. A continuación, haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades de la conexión y volver al asistente Nueva comparación de datos.

    Si desea restringir los registros que aparecerán en los resultados de la comparación, debe especificar Opciones de comparación de datos. Para este tutorial, acepte los valores predeterminados para mostrar todos los registros.

  4. Haga clic en Siguiente.

    En la segunda página del asistente Nueva comparación de datos, puede precisar las tablas y vistas que desea comparar. Todas las tablas de la base de datos se muestran bajo el nodo Tablas. Puede expandir cada una de las tablas para mostrar las columnas que contienen. De forma predeterminada, aparecen y se compararán todas las tablas y columnas. En la lista aparece la clave que se utiliza para comparar los registros de cada tabla o vista. Las tablas y las vistas deben cumplir ciertos criterios para ser comparadas. Para obtener más información, vea Comparar y sincronizar los datos de una o más tablas con datos de una base de datos de referencia.

    Nota

    Si no desea especificar de manera personalizada qué tablas y vistas se van a comparar, puede hacer clic en Finalizar en lugar de en Siguiente.

  5. Haga clic en Finalizar para comenzar la comparación.

    Se iniciará la comparación.

    Nota

    Para detener una comparación de datos en curso, haga clic en Detener en la barra de herramientas Comparación de datos.

    Al finalizar la comparación, las diferencias entre los datos de las dos bases de datos aparecen en una tabla en la ventana Comparación de datos. Para obtener más información sobre cómo examinar los resultados, vea el procedimiento siguiente.

    Ahora, puede actualizar los datos del destino de manera que coincidan con los del origen. Para obtener más información, vea Actualizar la base de datos de destino.

Para ver los resultados de la comparación de datos

  1. Haga clic en la fila [Sales].[Customer].

    En el recuadro Vista de registros, los nombres de las pestañas cambian para incluir el número de registros de cada tipo: Registros diferentes (0), Solo en origen (9), Solo en destino (0) y Registros idénticos (0).

  2. Haga clic en la ficha Sólo en origen (9).

    En la pestaña Solo en origen (9), cada fila y columna se corresponde con una fila o columna de la tabla [Sales].[Customer].

    Nota

    Puede utilizar estas fichas para controlar los datos que se propagan en el destino.

Actualizar el destino

Puede actualizar los datos del destino directamente desde la ventana Comparación de datos o desde el editor de Transact-SQL. En esta sección se describen ambas opciones.

Después de comparar los datos, las diferencias aparecen en la cuadrícula de la ventana Comparación de datos. Para cada tabla o vista de la columna Objeto hay una casilla que indica si ese objeto estaría incluido en una operación de actualización. Las columnas muestran los cambios que ha indicado la comparación de datos y de qué tipo de cambios se trata. En este caso, dado que el destino está vacío y sólo contiene los objetos predeterminados, únicamente la columna Sólo en origen muestra los cambios que se realizarían.

Escribir actualizaciones utilizando las opciones de comparación de datos

Para actualizar los datos en el destino utilizando las acciones de actualización que aparecen en la ventana Comparación de datos, realice el procedimiento siguiente:

  • Actualizar la base de datos de destino

Escribir actualizaciones utilizando el editor de Transact-SQL

Para exportar, examinar y cambiar un script de actualización y después utilizarlo para cambiar el destino, realice el procedimiento siguiente:

  • Examinar y ejecutar el script de sincronización

Actualizar la base de datos de destino

Para actualizar el destino

  1. En la ventana Comparación de datos, haga clic en [Sales].[Customer].

  2. En el recuadro de detalles, haga clic en Solo en origen.

    Las dos primeras filas son para los clientes Ken J. Sánchez y Terri Lee Duffy.

    La barra de estado del panel de detalles indica el número de registros que no se encuentran en el origen y el número de registros que se eliminarán en el destino. Estas dos cifras coinciden.

  3. Desactive la casilla de la fila correspondiente a Terri Lee Duffy.

    En la barra de estado del recuadro de detalles, el número de registros que se van a insertar incluye un registro menos. Ya no coincide con el número de registros que no se encuentran en el destino.

  4. En la ventana Comparación de datos, haga clic en Escribir actualizaciones.

    Se implementarán las acciones de actualización que se mostraban en la ventana Comparación de datos. Esta sincronización cambia el destino para que coincida con el origen.

    Nota

    Mientras se actualiza el destino, para cancelar la operación, haga clic en Detener escritura en destino.

Examinar y ejecutar el script de sincronización

Para examinar el script de sincronización

  1. En la barra de herramientas Comparación de datos, haga clic en Exportar a editor.

    El editor de Transact-SQL se abre en modo conectado y muestra el script de Transact-SQL. Esta ventana tiene un nombre como DataUpdate_EmptyDB_1.sql. Dado que tiene acceso de escritura en esta ventana, puede cambiar el script. Si desea guardar el script de actualización, haga clic en Guardar.

  2. Para sincronizar los datos de las dos bases de datos, ejecute este script: haga clic en Ejecutar SQL o presione F5.

    Nota

    Si desea cancelar la ejecución del script, haga clic en Cancelar ejecución de consulta o presione Alt + Inter.

Vea también

Tareas

Cómo: Comparar esquemas de base de datos

Cómo: Comparar y sincronizar los datos de dos bases de datos

Conceptos

Comparar y sincronizar esquemas de base de datos