Partager via


Comment : comparer et synchroniser les 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

Visual Studio vous permet de comparer les données qui sont contenues dans deux bases de données. Les bases de données que vous comparez sont appelées la source et la cible.

Notes

Les projets de base de données et les projets d'application de couche Données ne contiennent pas de données. Par conséquent, aucun de ces deux types de projets ne peut être la source ou la cible dans une comparaison de données. De même, les fichiers .dbschema et .dacpac ne contiennent pas de données et ne peuvent pas être la source ou la cible dans une comparaison de données.

Lorsque les données sont comparées, vous pouvez utiliser le script de langage de manipulation de données (DML) généré pour synchroniser les bases de données qui diffèrent en mettant à jour tout ou partie des données sur la base de données cible. Lorsque la comparaison des données est terminée, ses résultats apparaissent dans la fenêtre Comparaison de données de Visual Studio.

Une fois comparaison terminée, vous pouvez exécuter d'autres étapes :

  • Vous pouvez consulter les différences entre les deux bases de données. Pour plus d'informations, consultez Affichage des différences de données.

  • Vous pouvez mettre à jour une partie ou la totalité de la cible pour qu'elle corresponde à la source. Pour plus d'informations, consultez Synchronisation des données de base de donné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

Vous pouvez également comparer le schéma de deux bases de données ou de deux versions de la même base de données. Pour plus d'informations, consultez Comment : comparer des schémas de base de données.

Comparaison de données de base de données

Pour comparer des données à l'aide de l'Assistant Nouvelle comparaison 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. La fenêtre Comparaison de données ouvre également, et Visual Studio lui assigne automatiquement un nom tel que DataCompare1.

  2. Identifiez les bases de données source et cible.

    Si la liste Base de données source ou 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 réside la base de données et le type d'authentification à utiliser lors de la connexion à la base de données. Cliquez ensuite sur OK pour fermer la boîte de dialogue Propriétés de connexion, puis retournez dans l'Assistant Comparaison de données.

    Sur la première page de l'Assistant Comparaison de données, vérifiez que les informations correspondant à chaque base de données sont correctes, spécifiez les enregistrements que vous voulez inclure dans les résultats, puis cliquez sur Suivant. La deuxième page de l'Assistant Comparaison de données s'affiche et présente la liste hiérarchique des tables et vues dans la base de données.

  3. Activez les cases à cocher correspondant aux tables et vues que vous voulez comparer. Développez éventuellement les nœuds des objets de base de données, puis activez les cases à cocher correspondant aux colonnes de ces objets que vous voulez comparer.

    Notes

    Les tables et vues doivent répondre à deux critères pour apparaître dans la liste. Tout d'abord, les schémas des objets doivent correspondre entre les bases de données source et cible. Ensuite, seules les tables et vues qui possèdent une clé primaire, une clé unique ou un index s'affichent dans la liste. Si aucune table ou vue ne répond à ces deux critères à la fois, la liste sera vide.

  4. S'il existe plusieurs clés, vous pouvez utiliser la colonne Clé de comparaison pour spécifier la clé sur laquelle baser la comparaison de données. Par exemple, vous pouvez spécifier s'il convient de baser la comparaison sur la colonne de clé primaire ou sur une autre colonne clé (identifiable de façon unique).

  5. Cliquez sur Terminer.

    La comparaison commence.

    Notes

    Vous pouvez arrêter une opération de comparaison de données qui est en cours en ouvrant le menu Données, en cliquant sur Comparaison de données, puis en cliquant sur Arrêter la comparaison des données.

    Lorsque la comparaison est terminée, vous pouvez consulter les différences de données entre les deux bases de données. Vous pouvez également mettre à jour une partie ou l'ensemble des données dans la base de données cible pour qu'elles correspondent aux données contenues dans la base de données source.

Pour comparer des données aux aides du modèle Automation Visual Studio

  1. Dans le menu Affichage, pointez sur Autres fenêtres, puis cliquez sur Fenêtre Commande.

  2. Dans la fenêtre Commande, tapez la commande suivante :

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

    Remplacez les espaces réservés (sNomServeur, sNomBaseDeDonnées, sNomUtilisateur, sMotDePasse, sNomAffichage, tNomServeur, tNomBaseDeDonnées, tNomUtilisateur, tMotDePasse et tNomAffichage) par les valeurs correspondantes pour vos bases de données source et cible.

    Si vous ne spécifiez pas de source et de cible, la boîte de dialogue Nouvelle comparaison de données s'affiche. Pour plus d'informations sur les paramètres de la commande Data.NewDataComparison, consultez Référence des commandes Automation pour les fonctionnalités de base de données de Visual Studio.

    Les données des bases de données source et cible spécifiées sont comparées. Les résultats s'affichent dans la session Comparaison de données. Pour plus d'informations sur la façon d'afficher les résultats ou de synchroniser les données, consultez Affichages des différences de données et Synchronisation des données de base de données.

Affichage des différences de données

Après avoir comparé les données dans deux bases de données, la comparaison de données répertorie chaque objet de base de données que vous avez comparé et son état. Vous pouvez également consulter les résultats relatifs aux enregistrements dans chaque objet, regroupés par état. Pour plus d'informations sur les désignations d'états, 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.

Après avoir consulté les différences, vous pouvez mettre à jour la cible pour qu'elle corresponde à la source pour une partie ou l'ensemble des objets ou enregistrements qui sont différents, manquants ou nouveaux. Pour plus d'informations, consultez Synchronisation des données de base de données.

Pour consulter des différences au niveau des données

  1. Comparez les données contenues dans une base de données source et une base de données cible. Pour plus d'informations, consultez Comparer des données contenues dans des bases de données.

  2. (Facultatif) Effectuez l'une des opérations suivantes, ou les deux :

    • Par défaut, les résultats apparaissent pour tous les objets, quel que soit leur état. Pour afficher uniquement les objets qui ont un état particulier, cliquez sur une option dans la liste Filtre.

    • Pour afficher les résultats d'enregistrements contenus dans un objet particulier, cliquez sur l'objet dans le volet de résultats principal, puis cliquez sur un onglet dans le volet Vue Enregistrements. Chaque onglet affiche tous les enregistrements contenus dans cet objet qui ont un état particulier : Différent, Uniquement dans la source, Uniquement dans la cible et Identique. Les données apparaissent par enregistrement et par colonne.

Synchronisation des données de base de données

Après avoir comparé les données dans deux bases de données, vous pouvez les synchroniser en mettant à jour une partie ou l'ensemble de la cible afin qu'elle corresponde à la source. Vous pouvez comparer les données de deux types d'objets de base de données : les tables et les vues.

Pour mettre à jour les données cibles à l'aide de la commande Écrire les mises à jour

  1. Comparez les données contenues dans une base de données source et une base de données cible. Pour plus d'informations, consultez Comparer des données contenues dans des bases de données.

    Une fois la comparaison terminée, la fenêtre Comparaison de données répertorie les résultats des objets comparés. Quatre colonnes (nommées Enregistrements différents, Uniquement dans la source, Uniquement dans la cible et Enregistrements identiques) affichent des informations sur les objets qui n'étaient pas identiques. Pour chaque objet de ce type, ces colonnes affichent le nombre d'enregistrements différents trouvés ainsi que le nombre d'enregistrements modifiés par une opération de mise à jour. Ces deux nombres correspondent tout d'abord, mais vous pouvez modifier les objets à mettre à jour à l'étape 4.

    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.

  2. Dans la table de la fenêtre Comparaison de données, cliquez sur une ligne.

    Le volet d'informations affiche les résultats pour les enregistrements de l'objet de base de données sur lequel vous avez cliqué. Les enregistrements sont groupés par état sous des onglets que vous pouvez utiliser pour spécifier les données à propager de la source vers la cible.

  3. Dans le volet d'informations, cliquez sur un onglet dont le nom contient un nombre autre que zéro (0).

    La colonne Mettre à jour de la table Uniquement dans la cible contient des cases à cocher que vous pouvez utiliser pour sélectionner des lignes à mettre à jour. Par défaut, chaque case à cocher est activée.

  4. Désactivez les cases à cocher pour les enregistrements dans la cible que vous ne souhaitez pas mettre à jour avec les données de la source.

    Lorsque vous désactivez une case à cocher, vous réduisez le nombre d'enregistrements à mettre à jour, et l'affichage change pour refléter vos actions. Ce nombre apparaît dans la ligne d'état du volet d'informations et dans la colonne correspondante du volet de résultats principal, comme décrit à l'étape 1.

  5. (Facultatif) Cliquez sur Exporter vers l'éditeur.

    Une fenêtre de l'éditeur Transact-SQL s'ouvre et affiche le script de langage de manipulation de données (DML, Data Manipulation Language) qui serait utilisé pour mettre à jour la cible.

  6. Pour synchroniser des enregistrements qui sont différents, manquants ou nouveaux, cliquez sur Écrire les mises à jour.

    Notes

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

    Les données des enregistrements sélectionnés dans la cible sont mises à jour avec les données des enregistrements correspondants dans la source.

    Notes

    Si vous décidez de mettre à jour les vues indexées, l'opération Écrire les mises à jour peut échouer si cette action provoque l'insertion de clés en double dans la même table.

Pour mettre à jour les données cibles à l'aide d'un script Transact-SQL

  1. Comparez les données contenues dans une base de données source et une base de données cible. Pour plus d'informations, consultez Comparer des données contenues dans des bases de données.

    Une fois la comparaison terminée, la fenêtre Comparaison de données répertorie les objets comparés. 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.

  2. (Facultatif) Dans le volet d'informations, désactivez les cases à cocher correspondant aux enregistrements de la cible que vous ne voulez pas mettre à jour, comme décrit dans la procédure précédente.

  3. Cliquez sur Exporter vers l'éditeur.

    Une nouvelle fenêtre affiche le script Transact-SQL qui propage les modifications nécessaires pour que les données de la cible correspondent à celles de la source. Un nom est affecté à la nouvelle fenêtre, par exemple Server.Database - DataUpdate_Database _1.sql.

    Ce script reflète les modifications que vous avez apportées dans le volet d'informations. Par exemple, vous avez pu désactiver une case à cocher pour une ligne donnée à la page Uniquement dans la cible pour la table [dbo].[Shippers]. Dans ce cas, le script ne met pas à jour cette ligne.

  4. (Facultatif) Modifiez ce script dans la fenêtre Server.Database - DataUpdate_Database _1.sql.

  5. (Facultatif, mais recommandé) Sauvegardez la base de données cible.

  6. Cliquez sur Exécuter SQL ou appuyez sur F5 pour mettre à jour la base de données cible.

    Spécifiez une connexion à la base de données cible que vous souhaitez mettre à jour.

    Important

    Par défaut, les mises à jour se produisent dans la portée d'une transaction. Si des erreurs se produisent, vous pouvez restaurer l'intégralité de la mise à jour. Vous pouvez modifier ce comportement. Pour plus d'informations, consultez Comment : définir des options pour la comparaison de données de base de données.

    Les données des enregistrements sélectionnés dans la cible sont mises à jour avec les données des enregistrements correspondants dans la source.

Voir aussi

Tâches

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

Concepts

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