Partager via


Procédure pas à pas : comparaison des données de deux bases de données

Cette rubrique s'applique à :

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

La rubrique s'applique La rubrique s'applique La rubrique ne s'applique pas La rubrique ne s'applique pas

Dans cette procédure pas à pas, vous comparez les données de deux bases de données, générez un script de langage de manipulation de données (DML) à partir des différences, puis utilisez ce script pour remplir la cible avec les données de la source.

Vous suivrez les procédures suivantes dans cette procédure pas à pas :

  • Ajouter des données à la base de données source. Dans cette procédure, vous utilisez l'éditeur Transact-SQL pour ajouter des données à la table Customer dans la base de données source.

  • Comparer les données de deux bases de données. Dans cette procédure, vous recherchez des différences dans les données, les affichez dans une grille et générez un script DML qui les exprime.

  • Mettre à jour la base de données cible. Dans cette procédure, vous affichez deux façons de mettre à jour la cible afin qu'elle corresponde à la source.

Composants requis

Avant de pouvoir effectuer cette procédure pas à pas, vous devez disposer d'un accès aux produits suivants :

  • SQL Server 2008

  • Visual Studio Premium ou Visual Studio Ultimate

Avant de commencer cette procédure pas à pas, vous devez suivre les procédures de Procédure pas à pas : comparaison des schémas de deux bases de données. Après avoir effectué cette procédure pas à pas, vous disposez de deux bases de données :

  • La source (CompareProjectDB) possède sa structure d'origine mais ne contient aucune donnée. Vous personnalisez le projet pour insérer des données dans la base de données, dans le cadre du script de post-déploiement.

  • La cible (EmptyDB) est la base de données que vous avez créée au cours de la procédure pas à pas permettant de comparer le schéma. Vous avez ensuite appliqué uniquement le schéma de la base de données AdventureWorks2008 à EmptyDB. Par conséquent, EmptyDB ne contient aucune donnée.

Vous devez disposer d'autorisations pour lire des données des bases de données source et cible.

Ajouter des données à la base de données source

Pour utiliser l'éditeur Transact-SQL afin d'ajouter des données à la base de données source

  1. Dans le menu Données, pointez sur Éditeur Transact-SQL et cliquez sur Nouvelle connexion à la requête.

  2. Spécifiez une connexion au serveur sur lequel se trouve CompareProjectDB.

  3. Tapez les instructions Transact-SQL suivantes dans l'éditeur 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. Dans la barre d'outils Éditeur Transact-SQL, cliquez sur Exécuter SQL.

    Les instructions Transact-SQL suppriment toutes les données existantes de la table [Sales].[Customer], puis utilisent la procédure stockée [Sales].[uspNewCustomer] pour ajouter neuf clients. Maintenant que votre base de données source contient des données, vous pouvez la comparer avec la base de données cible.

Comparaison des données de deux bases de données

Pour comparer les données de deux bases de données

  1. Dans le menu Données, pointez sur Comparaison de données, puis cliquez sur Nouvelle comparaison de données.

    L'Assistant Nouvelle comparaison de données apparaît. Par ailleurs, la fenêtre Comparaison de données s'ouvre en arrière-plan et Visual Studio lui assigne automatiquement un nom, tel que DataCompare1.

  2. Dans la liste Base de données source, cliquez sur la connexion à la base de données CompareProjectDB.

    Si la liste Base de données source est vide, cliquez sur Nouvelle connexion. Dans la boîte de dialogue Propriétés de connexion, identifiez le serveur sur lequel se trouve la base de données CompareProjectDB et le type d'authentification à utiliser lorsque vous vous y connectez. Cliquez ensuite sur OK pour fermer la boîte de dialogue Propriétés de connexion et retourner dans l'Assistant Nouvelle comparaison de données.

  3. Dans la liste Base de données cible, cliquez sur Server.EmptyDB.dbo.

    Si la liste Base de données cible est vide, cliquez sur Nouvelle connexion. Dans la boîte de dialogue Propriétés de connexion, identifiez le serveur sur lequel se trouve la base de données EmptyDB et le type d'authentification à utiliser lorsque vous vous y connectez. Cliquez ensuite sur OK pour fermer la boîte de dialogue Propriétés de connexion et retourner dans l'Assistant Nouvelle comparaison de données.

    Si vous souhaitez restreindre l'affichage des enregistrements dans les résultats de la comparaison, vous devez spécifier des options de comparaison de données. Pour cette procédure pas à pas, acceptez les valeurs par défaut pour afficher tous les enregistrements.

  4. Cliquez sur Suivant.

    Sur la deuxième page de l'Assistant Nouvelle comparaison de données, vous pouvez affiner une sélection de tables et de vues à comparer. Toutes les tables de la base de données sont répertoriées sous le nœud Tables. Vous pouvez développer des tables individuelles pour afficher les colonnes qu'elles contiennent. Par défaut, toutes les tables et colonnes apparaissent et sont comparées. La clé utilisée pour comparer les enregistrements apparaît pour chaque table ou vue dans la liste. Les tables et vues doivent répondre à certains critères pour être comparées. Pour plus d'informations, consultez Comparer et synchroniser les données d'une ou de plusieurs tables avec les données d'une base de données de référence.

    Notes

    Si vous ne souhaitez pas personnaliser la comparaison des tables et des vues, vous pouvez cliquer sur Terminer plutôt que sur Suivant.

  5. Cliquez sur Terminer pour démarrer la comparaison.

    La comparaison commence.

    Notes

    Pour arrêter une comparaison de données en cours, vous pouvez cliquer sur Arrêter dans la barre d'outils Comparaison de données.

    Lorsque la comparaison est terminée, les différences de données entre les deux bases de données apparaissent dans une table de la fenêtre Comparaison de données. Pour plus d'informations sur l'affichage de ces résultats, consultez la procédure suivante.

    Vous pouvez maintenant mettre à jour les données dans la cible pour qu'elle corresponde à celles de la source. Pour plus d'informations, consultez Mise à jour de la base de données cible.

Pour afficher les résultats de comparaison de données

  1. Cliquez sur la ligne [Sales].[Customer].

    Dans le volet Vue Enregistrements, les noms des onglets sont modifiés pour refléter le nombre d'enregistrements de chaque type : Enregistrements différents (0), Uniquement dans la source (9), Uniquement dans la cible (0) et Enregistrements identiques (0).

  2. Cliquez sur l'onglet Uniquement dans la source (9).

    Dans l'onglet Uniquement dans la source (9), chaque ligne et colonne correspond à une ligne ou colonne de la table [Sales].[Customer].

    Notes

    Vous pouvez utiliser ces onglets pour contrôler les données qui sont propagées vers la cible.

Mise à jour de la cible

Vous pouvez mettre à jour les données de la cible, directement à partir de la fenêtre Comparaison de données ou à l'aide de l'éditeur Transact-SQL. Cette section décrit les deux options.

Après avoir comparé les données, les différences apparaissent dans la grille de la fenêtre Comparaison de données. Pour chaque table ou vue de la colonne Objet, une case à cocher indique si cet objet est inclus dans une opération de mise à jour. Les colonnes indiquent quelles modifications et de quels types ont été signalées par la comparaison de données. Dans ce cas, dans la mesure où la cible est vide à l'exception des objets par défaut, seule la colonne Uniquement dans la source affiche les modifications apportées.

Écrire des mises à jour à l'aide d'options de comparaison de données

Pour mettre à jour les données dans la cible à l'aide des actions de mise à jour qui apparaissent dans la fenêtre Comparaison de données, procédez comme suit :

  • Mise à jour de la base de données cible

Écrire des mises à jour à l'aide de l'éditeur Transact-SQL

Pour exporter, examiner et modifier un script de mise à jour, puis l'utiliser pour modifier la cible, procédez comme suit :

  • Examen et exécution du script de synchronisation

Mise à jour de la base de données cible

Pour mettre à jour la cible

  1. Dans la fenêtre Comparaison de données, cliquez sur [Sales].[Customer].

  2. Dans le volet d'informations, cliquez sur Uniquement dans la source.

    Les deux premières lignes sont réservées aux clients nommés Ken J. Sánchez et Terri Lee Duffy.

    La barre d'état du volet d'informations indique le nombre des enregistrements qui manquent dans la source et le nombre des enregistrements qui seront supprimés de la cible. Ces deux nombres correspondent.

  3. Désactivez la case à cocher dans la ligne réservée à Terri Lee Duffy.

    Dans la barre d'état du volet d'informations, le nombre d'enregistrements à insérer a été réduit d'un enregistrement. Il ne correspond plus au nombre des enregistrements qui manquent sur la cible.

  4. Dans la fenêtre Comparaison de données, cliquez sur Écrire les mises à jour.

    Les actions de mise à jour répertoriées dans la fenêtre Comparaison de données sont implémentées. Cette synchronisation modifie la cible pour correspondre à la source.

    Notes

    Pendant que la cible est mise à jour, vous pouvez annuler l'opération en cliquant sur Arrêter l'écriture dans la cible.

Examen et exécution du script de synchronisation

Pour examiner le script de synchronisation

  1. Dans la barre d'outils Comparaison de données, cliquez sur Exporter vers l'éditeur.

    L'éditeur Transact-SQL s'ouvre dans un mode connecté et affiche le script Transact-SQL. Cette fenêtre porte un nom tel que DataUpdate_EmptyDB_1.sql. Dans la mesure où vous avez un accès en écriture dans cette fenêtre, vous pouvez modifier le script. Si vous souhaitez enregistrer le script de mise à jour, cliquez sur Enregistrer.

  2. Pour synchroniser les données des deux bases de données, exécutez ce script d'un simple clic sur Exécuter SQL ou d'une simple pression sur F5.

    Notes

    Pendant l'exécution du script, vous pouvez annuler l'opération d'un simple clic sur Annuler l'exécution de la requête ou à l'aide de la combinaison de touches Alt + Attn.

Voir aussi

Tâches

Comment : comparer des schémas de base de données

Comment : comparer et synchroniser les données de deux bases de données

Concepts

Comparer et synchroniser des schémas de base de données