Comparaison de schémas (préversion) dans SQL Server Management Studio

S’applique à : SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

La comparaison de schémas vous permet de comparer deux définitions de base de données. La source et la cible de la comparaison peuvent être n’importe quelle combinaison de base de données connectée, de projet de base de données SQL ou .dacpac de fichier. Une fois la comparaison terminée, les résultats apparaissent sous la forme d’un ensemble d’actions qui rendent la cible identique à la source. Les différences entre les modèles de base de données sont présentées comme un écart de contrôle de code source.

Si la cible de comparaison de schémas est un projet SQL ou une base de données, vous pouvez mettre à jour la cible directement à partir de l’interface de comparaison de schémas ou générer un script de mise à jour qui a le même effet.

Screenshot de la fenêtre Comparaison de schémas dans SQL Server Management Studio affichant une comparaison entre une source et target.

La comparaison de schémas offre les fonctionnalités suivantes :

  • Comparez les schémas entre deux .dacpac fichiers, bases de données ou projets de base de données SQL.
  • Affichez les résultats sous la forme d’un ensemble d’actions pour faire correspondre une cible à la source.
  • L’exclusion sélective des actions répertoriées dans les résultats.
  • Définir les options qui contrôlent l’étendue de la comparaison.
  • Appliquez des modifications directement à la cible ou générez un script pour appliquer les modifications ultérieurement.
  • Enregistrez la comparaison en tant que .scmp fichier à réutiliser.

Prerequisites

Lancer la comparaison de schémas

Vous pouvez ouvrir la comparaison de schémas dans SSMS à partir de plusieurs points d’entrée.

Explorateur d'objets

Cliquez avec le bouton droit sur une base de données dans Explorateur d'objets puis sélectionnez Tasks>Schema Compare (préversion). La base de données sélectionnée est automatiquement définie comme source.

Explorateur de solutions

Cliquez avec le bouton droit sur un projet de base de données SQL dans Explorateur de solutions puis sélectionnez Schema Compare (préversion). Le projet sélectionné est automatiquement défini comme source.

Note

Pour utiliser des projets de base de données SQL dans Explorateur de solutions, vous avez besoin de la charge de travail Database DevOps.

Menu Outils

Dans le menu Outils , sélectionnez Comparaison de schémas (préversion). La fenêtre Comparaison de schémas s’ouvre sans source ou cible prédéfinie.

Sélectionner la source et la cible

Une fois la comparaison de schéma ouverte, sélectionnez la source et la cible de la comparaison. Chacun peut être une base de données connectée, un .dacpac fichier ou un projet de base de données SQL.

Capture d’écran des options de sélection de la source et de la cible montrant les choix Base de données, Application de niveau Données (.dacpac) et Projet de base de données.

  • Base de données : se connecter à une instance de base de données en cours d’exécution. La source est la définition de base de données que vous souhaitez utiliser comme base pour les modifications apportées à la cible.
  • Application de la couche Données (.dacpac) : accédez à un fichier compilé .dacpac . Un .dacpac contient une copie instantanée d’un schéma de base de données.
  • Database Project: sélectionnez un projet de base de données SQL ouvert. Nécessite la charge de travail DevOps pour bases de données.

La cible est la définition de base de données à laquelle vous souhaitez évaluer et éventuellement appliquer des modifications.

Comparaison de l’exécution et de la vérification

Sélectionnez Comparer dans la barre d’outils pour démarrer le processus de comparaison.

Une fois la comparaison terminée, le volet Résultats affiche les différences structurelles entre la source et la cible. Les résultats de comparaison regroupent toutes les différences par action, telles que Supprimer, Modifier ou Ajouter.

Chaque ligne identifie l’objet dans le schéma source ou cible (ou les deux) et l’action effectuée par le processus sur le schéma cible pour rendre l’objet cible identique à l’objet source. Si vous renommez un objet ou déplacez-le vers un nouveau schéma, les noms source et cible sont différents. Le nom de la source apparaît en gras pour mettre en évidence la différence.

Par défaut, la liste des résultats masque les objets identiques dans les deux schémas ou qui ne sont pas pris en charge pour la mise à jour (par exemple, les objets intégrés). Sélectionnez les boutons de filtre appropriés dans la barre d’outils pour afficher ces objets.

Pour modifier la préférence de regroupement, sélectionnez la liste déroulante Grouper les résultats dans la barre d’outils. Sélectionnez Type pour regrouper les résultats par type d’objet, par exemple par tables, vues ou procédures stockées.

Exclure les différences

Par défaut, l’action Update Target inclut toutes les différences dans son étendue. Pour exclure les différences que vous ne souhaitez pas synchroniser, désactivez la colonne Include de chaque ligne. La ligne est immédiatement grisée. Lorsque Schema Compare met à jour la cible, il ne prend pas cette ligne en compte parmi les modifications en attente.

Si une ligne exclue a des objets dépendants, tels qu’une ligne de table référencée par une ligne d’affichage , la ligne exclue est désactivée, mais sa case à cocher n’est pas désactivée tant que vous n’avez pas non plus décoché toutes les lignes dépendantes. Si vous refactorisez une ligne, telle que le changement de nom ou le déplacement vers un autre schéma, la case à cocher est désactivée pour cette ligne et ses lignes enfants dépendantes.

Options de comparaison

Sélectionnez Options dans la barre d’outils pour configurer quels objets sont comparés et quels types de différences sont ignorés. Les options sont les suivantes :

  • Ignorer l’espace blanc
  • Ignorer les schémas de partition
  • Ignorer l’ordre des colonnes

Vous pouvez également configurer les types d’objets inclus dans la comparaison, tels que les tables, les procédures stockées, les index, les autorisations et les types définis par l’utilisateur.

Appliquer des modifications

Pour mettre à jour le schéma de la cible, vous avez deux options :

  • Appliquer : appliquez des modifications directement à la base de données ou au projet cible à partir de la fenêtre Comparaison de schémas.
  • Generate Script : générez un script Transact-SQL qui capture les mêmes modifications, que vous pouvez examiner et exécuter ultérieurement.

Un script généré apparaît dans l’éditeur Transact-SQL, où vous pouvez l’inspecter et l’exécuter sur une base de données.

Enregistrer les comparaisons

Vous pouvez enregistrer la définition de comparaison pour la comparaison de schémas en tant que .scmp fichier, appelé fichier de comparaison de schémas. Ce fichier stocke des informations sur les paramètres de comparaison dans XML et inclut les éléments suivants :

  • Informations de connexion source et cible
  • Options de comparaison
  • Types d’objets exclus

Vous pouvez ouvrir un .scmp fichier dans SSMS pour exécuter la même comparaison ultérieurement ou partager la comparaison avec d’autres personnes.