Share via


Cómo: Comparar y sincronizar 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

Al utilizar Visual Studio, puede comparar los datos incluidos en dos bases de datos. Las bases de datos que se comparan se denominan origen y destino.

Nota

Los proyectos de base de datos y los proyectos de aplicación de capa de datos no contienen datos. Por consiguiente, ninguno de estos proyectos puede ser el origen ni el destino en una comparación de datos. De igual forma, los archivos .dbschema y .dacpac tampoco contienen datos y no pueden ser el origen ni el destina en una comparación de datos.

Cuando se comparan los datos, se genera un script de Lenguaje de manipulación de datos (DML) que sirve para sincronizar las bases de datos distintas actualizando algunos o todos los datos de la base de datos de destino. Cuando finaliza la comparación de datos, los resultados aparecen en la ventana Comparación de datos de Visual Studio.

Una vez que finaliza la comparación, puede realizar otros pasos:

  • Puede ver las diferencias entre las dos bases de datos. Para obtener más información, vea Ver diferencias de datos.

  • Puede actualizar una parte o la totalidad del destino para que coincida con el origen. Para obtener más información, vea Sincronizar datos de base de datos.

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

También se puede comparar el esquema de dos bases de datos o de dos versiones de la misma base de datos. Para obtener más información, vea Cómo: Comparar esquemas de base de datos.

Comparar datos de bases de datos

Para comparar datos utilizando el Asistente de Nueva comparación 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. También se abrirá la ventana Comparación de datos, y Visual Studio le asignará automáticamente un nombre similar a DataCompare1.

  2. Identifique las bases de datos de origen y destino.

    Si la lista Base de datos de origen o 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 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 regresar al Asistente para comparar datos.

    En la primera página del Asistente para comparar datos, compruebe que la información para cada base de datos es correcta, especifique qué registros desea incluir en los resultados y, a continuación, haga clic en Siguiente. Aparecerá la segunda página del Asistente para comparar datos con una lista jerárquica de las tablas y vistas de la base de datos.

  3. Active las casillas de las tablas y vistas que desea comparar. Opcionalmente, expanda los nodos de los objetos de base de datos y, a continuación, active las casillas de las columnas que desea comparar de esos objetos.

    Nota

    Las tablas y vistas deben cumplir dos criterios para que aparezcan en la lista. Primero, los esquemas de los objetos deben coincidir entre la base de datos de origen y la de destino. Segundo, en la lista aparecen sólo las tablas y vistas que tienen una clave principal, una clave única o un índice. Si ninguna tabla o vista cumple ambos criterios, la lista estará vacía.

  4. Si hay más de una clave, puede utilizar la columna Clave de comparación para especificar en qué clave se va a basar la comparación de datos. Por ejemplo, puede especificar si la comparación se va a basar en la columna de clave principal o en otra columna de clave (identificable de manera única).

  5. Haga clic en Finalizar.

    Se iniciará la comparación.

    Nota

    Si desea detener una operación de comparación de datos en curso, abra el menú Datos , haga clic en Comparación de datos y haga clic en Detener comparación de datos.

    Cuando finalice la comparación, podrá ver las diferencias de los datos entre las dos bases de datos. También podrá actualizar una parte o la totalidad de los datos de la base de datos de destino de manera que coincidan con los datos de la base de datos de origen.

Para comparar datos utilizando el modelo de automatización de Visual Studio

  1. Abra el menú Ver, elija Otras ventanas y, a continuación, haga clic en Ventana Comandos.

  2. En la ventana Comandos, escriba el siguiente comando:

    Data.NewDataComparison /SrcServerName sServerName /SrcDatabaseName sDatabaseName /SrcUserName sUserName /SrcPassword sPassword /SrcDisplayName sDisplayName /TargetServerName tServerName /TargetDatabaseName tDatabaseName /TargeUserName tUserName /TargetPassword tPassword /TargetDisplayName tDisplayName
    

    Reemplace los marcadores de posición (sServerName, sDatabaseName, sUserName, sPassword, sDisplayName, tServerName, tDatabaseName, tUserName, tPassword y tDisplayName) por los valores para las bases de datos de origen y destino.

    Si no especifica un origen y un destino, aparecerá el cuadro de diálogo Nueva comparación de datos. Para obtener más información sobre los parámetros para el comando Data.NewDataComparison, vea Referencia de los comandos de automatización para las características de base de datos de Visual Studio.

    Se comparan los datos de las bases de datos de origen y destino especificadas. Los resultados aparecen en una sesión de comparación de datos. Para obtener más información sobre cómo ver los resultados o sincronizar los datos, vea Ver diferencias de datos y Sincronizar datos de bases de datos.

Ver diferencias de datos

Después de comparar los datos de dos bases de datos, Comparación de datos muestra todos los objetos de base de datos comparados y su estado. También puede ver los resultados para los registros de cada objeto, agrupados por estado. Para obtener más información sobre las designaciones del estado, vea Comparar y sincronizar los datos de una o más tablas con datos de una base de datos de referencia.

Tras ver las diferencias, puede actualizar el destino de forma que coincida con el origen para algunos o todos los objetos o registros que faltan, son distintos o son nuevos. Para obtener más información, vea Sincronizar datos de base de datos.

Para ver diferencias de datos

  1. Compare los datos de una base de datos de origen y una de destino. Para obtener más información, vea Comparar datos de bases de datos.

  2. (Opcional) Realice una de las acciones siguientes (o ambas):

    • De manera predeterminada se muestran los resultados de todos los objetos, sin tener en cuenta su estado. Para mostrar sólo los objetos que tienen un estado determinado, haga clic en una opción de la lista Filtro.

    • Para ver los resultados para los registros de un objeto determinado, haga clic en el objeto en el recuadro de resultados principal y, a continuación, haga clic en una pestaña del recuadro de la vista de registros. Cada ficha muestra todos los registros incluidos en ese objeto que tienen un estado determinado: diferente, sólo en origen, sólo en destino e idéntico. Los datos se muestran ordenados por registro y columna.

Sincronizar datos de bases de datos

Después de comparar los datos de dos bases de datos, puede sincronizarlos actualizando una parte o la totalidad de los datos de destino de manera que coincidan con los datos de origen. Puede comparar los datos de dos tipos de objetos de base de datos: tablas y vistas.

Para actualizar los datos de destino mediante el comando Escribir actualizaciones

  1. Compare los datos de una base de datos de origen y una de destino. Para obtener más información, vea Comparar datos de bases de datos.

    Finalizada la comparación, en la ventana Comparación de datos aparecerán los resultados de los objetos comparados. La información sobre los objetos que no son idénticos se muestra en cuatro columnas (Registros diferentes, Solo en origen, Solo en destino y Registros idénticos). Para cada uno de estos objetos, las columnas muestran cuántos registros son diferentes y cuántos registros se cambiarían en una operación de actualización. En un principio las dos cifras coinciden, pero, en el paso 4, puede cambiar los objetos que desea actualizar.

    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.

  2. En la tabla de la ventana Comparación de datos, haga clic en una fila.

    El panel de detalles mostrará los resultados correspondientes a los registros del objeto de base de datos en el que hizo clic. Los registros se agrupan en fichas en función de su estado. Puede utilizar estas fichas para especificar los datos que se propagarán del origen al destino.

  3. En el panel de detalles, haga clic en una ficha cuyo nombre contenga un número distinto de cero (0).

    La columna Actualizar de la tabla Sólo en destino contiene las casillas que puede utilizar para seleccionar las filas que se actualizarán. Cada casilla se encuentra activada de forma predeterminada.

  4. Desactive las casillas de los registros del destino que no desea actualizar con datos del origen.

    Al desactivar una casilla, disminuirá el número de registros que se deben actualizar y la vista cambiará para reflejar sus acciones. Este número aparece en la línea de estado del recuadro de detalles y en la columna correspondiente del recuadro de resultados principal, como se ha descrito en el paso 1.

  5. (Opcional) Haga clic en Exportar a editor.

    Se abrirá una ventana del editor de Transact-SQL con el script DML (Lenguaje de manipulación de datos) que se utilizaría para actualizar el destino.

  6. Para sincronizar registros que son diferentes, nuevos o que no se encuentran, haga clic en Escribir actualizaciones.

    Nota

    Si desea cancelar la operación mientras se actualiza la base de datos de destino, haga clic en Detener escritura en destino.

    Los datos de los registros seleccionados en el destino se actualizan con los datos de los registros correspondientes en el origen.

    Nota

    Si opta por actualizar las vistas indizadas, se podría producir un error en la operación de Escribir actualizaciones si esta acción hace que se inserten claves duplicadas en la misma tabla.

Para actualizar los datos de destino mediante un script Transact-SQL

  1. Compare los datos de una base de datos de origen y una de destino. Para obtener más información, vea Comparar datos de bases de datos.

    Finalizada la comparación, en la ventana Comparación de datos aparecerán los objetos comparados. 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.

  2. (Opcional) En el panel de detalles, desactive las casillas de los registros del destino que no desea actualizar, tal como se ha descrito en el procedimiento anterior.

  3. Haga clic en Exportar a editor.

    Una nueva ventana muestra el script Transact-SQL que propagaría los cambios necesarios para hacer que los datos del destino coincidieran con los datos del origen. La nueva ventana tendrá un nombre similar a Server.Database - DataUpdate_Database _1.sql.

    Este script refleja los cambios que ha realizado en el panel de detalles. Por ejemplo, podría haber desactivado la casilla correspondiente a una fila determinada en la página Sólo en destino para la tabla [dbo].[Shippers]. En ese caso, el script no actualizaría esa fila.

  4. (Opcional) Edite este script en la ventana Server.Database - DataUpdate_Database _1.sql.

  5. (Opcional pero recomendado) Realice una copia de seguridad de la base de datos de destino.

  6. Haga clic en Ejecutar SQL o presione F5 para actualizar la base de datos de destino.

    Especifique una conexión a la base de datos de destino que desea actualizar.

    Nota importanteImportante

    De forma predeterminada, las actualizaciones se producen dentro del ámbito de una transacción. Si se producen errores, se puede deshacer la actualización completa. Si lo desea, puede cambiar este comportamiento. Para obtener más información, vea Cómo: Establecer opciones para comparar datos de bases datos.

    Los datos de los registros seleccionados en el destino se actualizan con los datos de los registros correspondientes en el origen.

Vea también

Tareas

Cómo: Comparar esquemas de base de datos

Conceptos

Comparar y sincronizar los datos de una o más tablas con datos de una base de datos de referencia