Partager via


Vue d'ensemble de la comparaison de schémas de base de données

Mise à jour : novembre 2007

Vous pouvez utiliser Visual Studio Team System Database Edition pour comparer les schémas de deux bases de données, puis décider d'appliquer certains ou l'ensemble des objets de schéma de la source vers la cible. Pour obtenir un exemple de scénario, consultez Why Compare Database Schemas?

Vous pouvez comparer les schémas des éléments suivants :

  • deux bases de données qui incluent deux versions de la même base de données

  • un projet de base de données Visual Studio et une base de données

Lorsque vous configurez la comparaison, vous utilisez la boîte de dialogue Comparaison de schémas pour désigner la source et la cible. Pour plus d'informations, consultez Comment : comparer les schémas de deux bases de données.

Une fois la comparaison des schémas terminée, elle affiche les résultats pour que vous les examiniez. Pour plus d'informations, consultez Comment : afficher les différences de schéma. Vous pouvez alors propager les éléments de schéma de la source vers la cible. Pour plus d'informations, consultez Comment : synchroniser des schémas de base de données.

Pourquoi comparer des schémas de base de données ?

L'histoire suivante représente un scénario dans lequel vous voulez comparer des schémas de base de données. Dans ce cas, vous comparez une base de données et un projet de base de données, au lieu de deux bases de données.

Développement de bases de données en équipe

Vous êtes développeur de bases de données et vous utilisez un projet de base de données Database Edition pour créer une base de données. Au fil du temps, votre équipe génère des versions consécutives de la base de données et les déploie vers des serveurs de test. D'autres membres de votre équipe contribuent également à la conception de la base de données.

Vous venez d'apporter une série de modifications au schéma de base de données et les avez testées sur votre propre ordinateur. Dans la mesure où vous n'avez trouvé aucune erreur, vous voulez maintenant publier les mises à jour sur un serveur de test afin que le personnel chargé de l'assurance qualité de votre équipe puisse les tester.

Vous ouvrez votre projet de base de données et, en utilisant la boîte de dialogue Nouvelle comparaison de schémas, vous établissez une connexion au serveur de test. Vous comparez votre projet (la source) à la base de données déployée (la cible) et déterminez que de nombreux objets diffèrent entre les deux entités. Toutefois, vous réalisez également que la plupart des différences figurent dans des objets pour lesquels vous n'êtes pas responsable. D'autres personnes ont apporté ces modifications et vous ne souhaitez pas les remplacer.

Vous sélectionnez à présent uniquement les objets que vous avez utilisés et cliquez sur Écrire les mises à jour. Cette action met à jour votre partie de la base de données et ne modifie en rien les autres parties. Votre travail est maintenant déployé et prêt à être testé.

La section suivante décrit comment Team Edition for Database Professionals vous indique les objets de schéma qui ont changé et vous aide à décider des actions à entreprendre.

Contrôle de la comparaison de schémas

Vous pouvez spécifier des options qui contrôlent le processus de comparaison de schémas et le processus de génération de scripts à deux niveaux. Pour définir des options globalement, ouvrez le menu Outils, cliquez sur Options, développez Outils de base de données, puis cliquez sur Comparaison de schémas. Les options que vous définissez globalement affectent toutes les opérations de comparaison de schémas suivantes à moins que vous ne les substituiez pour une comparaison spécifique.

Vues de la comparaison de schémas

Après avoir comparé deux schémas, la fenêtre Comparaison de schémas affiche les résultats dans une grille. La fenêtre affiche également des informations sur les objets des bases de données, y compris le script pour les synchroniser.

  • Understanding Schema Compare Results

  • Viewing Object Definitions

  • Previewing the Update Script

Présentation des résultats de la comparaison de schémas

La fenêtre Comparaison de schémas occupe la zone de modification principale de Visual Studio. La fenêtre affiche tous les objets dans les deux schémas, classés dans des dossiers qui peuvent être développés. Ces objets incluent des tables, vues, procédures stockées, fonctions, types définis par l'utilisateur, règles, valeurs par défaut, catalogues de texte intégral, utilisateurs et rôles.

Dans cette fenêtre, les colonnes affichent les informations suivantes sur chaque objet :

  • La première colonne, État, affiche l'état de comparaison des objets comparés :

    • Égal à. Les objets source et cible sont égaux d'un point de vue structurel.

    • Différent. Les objets source et cible sont différents d'un point de vue structurel.

    • Manquant. L'objet existe dans la cible, mais pas dans la source.

    • Nouveau. L'objet existe dans la source, mais pas dans la cible.

    Remarque :

    Les objets sont considérés comme égaux ou différents dans le contexte des options de comparaison de schémas que vous avez définies. Pour plus d'informations, consultez Controlling Schema Comparison.

  • La deuxième colonne répertorie les noms des objets de schéma dans la source, classés hiérarchiquement par type d'objet. Dans cette colonne, vous pouvez développer et réduire les nœuds pour afficher uniquement les types d'objets souhaités.

  • La troisième colonne, Mettre à jour l'action, affiche l'action qui, pour un objet particulier, synchronise la structure de cet objet entre les deux schémas. (Les modifications sont écrites uniquement dans la cible.) Les valeurs de la colonne Mettre à jour l'action correspondent aux valeurs de la colonne État. Pour chaque objet, vous pouvez choisir l'action Ignorer qui laisse l'objet dans la cible tel qu'il était avant la comparaison. Vous pouvez ne pas être en mesure d'ignorer une mise à jour si la case à cocher Inclure les dépendances est activée. (Pour vérifier l'état de cette case à cocher, ouvrez le menu Outils et cliquez sur Options.) Par exemple, si la base de données source contenait une nouvelle table avec des index, clés et déclencheurs et que vous ajoutez les index, clés et déclencheurs, vous ne pouvez pas ignorer la table.

    Remarque :

    La modification de valeurs dans la colonne Mettre à jour l'action modifie réellement le script de mise à jour qui sera exécuté. En d'autres termes, les résultats qui s'affichent lorsque vous cliquez sur Écrire les mises à jour sont modifiés. Pour plus d'informations, consultez Comment : synchroniser des schémas de base de données.

    Le tableau suivant récapitule ces actions :

État de comparaison

Actions de mise à jour disponibles (la valeur par défaut apparaît en gras)

Description de l'action par défaut

Égal à

Ignorer

Ignorer, l'action par défaut pour les objets qui sont égaux, laisse l'objet inchangé.

Différent

Mettre à jour, Ignorer

Mettre à jour, l'action par défaut pour les objets qui ne sont pas égaux, modifie la structure de l'objet dans la base de données cible. Par exemple, l'action Mettre à jour peut ajouter, supprimer ou renommer une colonne dans une table.

Manquant

Supprimer, Ignorer

Supprimer, l'action par défaut pour les objets qui n'existent pas dans la base de données source, supprime l'objet dans la base de données cible.

Nouveau

Créer, Ignorer

Créer, l'action par défaut pour les objets qui n'existent pas dans la base de données cible, crée l'objet dans la base de données cible.

  • La quatrième colonne répertorie les noms des objets de schéma dans la cible.

Affichage des définitions d'objets

Vous pouvez également afficher la définition SQL de chaque objet de base de données qui est répertorié dans la fenêtre Comparaison de schémas. Lorsque vous cliquez sur la ligne de l'objet dans la fenêtre du document principal, sa définition apparaît dans le volet Définitions d'objets, qui est en lecture seule. Le côté gauche du volet Définitions d'objets affiche la définition d'un objet sélectionné dans la source et le côté droit affiche la définition d'un objet sélectionné dans la cible. Vous pouvez faire défiler les deux définitions en même temps en utilisant la barre de défilement sur l'un des côtés. Les lignes qui diffèrent entre les définitions d'objets source et cible sont mises en surbrillance.

Les définitions d'objets reflètent l'état de l'objet au moment où vous avez exécuté la comparaison. Elles ne changent pas lorsque vous modifiez des valeurs dans la colonne Mettre à jour l'action ou si l'objet subit des modifications hors de cette session de comparaison de schémas.

Aperçu du script de mise à jour

La comparaison de schémas génère également automatiquement un script de synchronisation et l'affiche dans la fenêtre Script de mise à jour du schéma. Ce script de langage de définition de données (DDL) est utilisé pour mettre à jour la cible. Le script contient uniquement des objets dont l'état de comparaison est Mettre à jour, Supprimer ou Créer. Les éléments à ignorer n'apparaissent pas dans la fenêtre Script de mise à jour du schéma.

Lorsque vous modifiez des valeurs dans la colonne Mettre à jour l'action, la fenêtre Script de mise à jour du schéma reflète vos modifications.

Remarque :

La mise à jour du contenu du volet Aperçu de script peut prendre quelques secondes, selon l'étendue de vos modifications dans la colonne Mettre à jour l'action.

Bien que vous puissiez modifier le script DDL en modifiant des actions de mise à jour, vous ne pouvez pas modifier directement le script dans cette fenêtre, car le volet Aperçu de script est en lecture seule. Si vous voulez modifier le script de mise à jour, cliquez sur Exporter vers l'éditeur, puis modifiez le script de mise à jour dans l'éditeur Transact-SQL (T-SQL).

Actualisation des résultats de la comparaison

Vous pouvez mettre à jour votre vue des différences entre le schéma source et le schéma cible. Après avoir comparé une fois la source et la cible, vous pouvez actualiser la vue si l'un des deux ou les deux schémas ont changé. Vous pouvez également actualiser les résultats si vous modifiez les options de comparaison de schémas. Lorsque vous cliquez sur Actualiser, les informations de configuration que vous avez indiquées précédemment sont réutilisées pour générer de nouvelles données de comparaison.

Des objets de base de données ont pu être ajoutés à la source ou supprimés de celle-ci depuis la comparaison de schémas la plus récente. Dans ce cas, lorsque vous cliquez sur Actualiser, la comparaison de schémas essaie d'inclure de nouveaux objets dans la nouvelle comparaison et d'exclure des objets supprimés, selon le cas. Toutefois, si vous avez modifié le paramètre Mettre à jour l'action pour un objet particulier, ce paramètre est conservé indépendamment de toute modification apportée à l'objet depuis la comparaison de schémas la plus récente.

Propagation des schémas de base de données en toute sécurité

La propagation des schémas de base de données peut entraîner une perte de données. Pour l'éviter, vous devez faire très attention aux noms d'objets dans votre source et votre cible, particulièrement juste avant de mettre à jour le schéma dans la cible.

Par exemple, votre cible contient une table nommée Order_Details. Dans la base de données source, vous l'avez renommée Order Details, sans le trait de soulignement. Vous comparez alors les deux bases de données. Avant de propager le schéma de la source vers la cible, les données des deux tables sont identiques. Toutefois, lorsque vous écrivez des mises à jour de schéma dans la cible, la table Order_Details est supprimée et une table Order Details est créée. Vous pouvez perdre toutes les données de la table Order_Details.

Vous pouvez ouvrir le menu Outils, cliquer sur Options, puis activer la case à cocher Bloquer les mises à jour de schéma si une perte de données peut se produire pour éviter la perte de données. De plus, vous devez toujours sauvegarder votre base de données avant de déployer les modifications vers la base de données.

Voir aussi

Tâches

Comment : comparer les schémas de deux bases de données

Concepts

Vue d'ensemble de la terminologie de Database Edition

Autres ressources

Vue d'ensemble de la comparaison des données de bases de données