Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
L'outil de comparaison de schémas vous permet de comparer deux définitions de base de données, la source et la cible de la comparaison pouvant être n'importe quelle combinaison de base de données connectée, de projet de base de données SQL ou de fichier .dacpac
. Une fois la comparaison terminée, les résultats de la comparaison 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 de la même manière qu’un écart de contrôle de code source. Si la cible de comparaison de schéma 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éma, ou générer un script de mise à jour qui a le même effet.
La comparaison de schémas offre les fonctionnalités suivantes :
- Comparez les schémas entre deux
.dacpac
fichiers, bases de données ou projets 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.
- Enregistrer la comparaison.
Fonctionnalités
Les différences entre la source et la cible s'affichent dans une grille qui permet de les examiner facilement. La comparaison peut être effectuée dans les deux sens entre un modèle de base de données dérivé de l’une des options suivantes :
- connecter une base de données
- Projet de base de données SQL
- Fichier
.dacpac
Dans la comparaison de schémas, vous pouvez explorer et examiner chaque différence dans la grille des résultats ou sous forme de script où les détails des modifications sont disponibles au niveau par ligne. Vous pouvez également exclure sélectivement des différences spécifiques avant de mettre à jour la cible. L'outil de comparaison de schémas est disponible dans Visual Studio, Azure Data Studio et en ligne de commande.
Options de comparaison de schémas
Les options de comparaison des schémas sont tirées des options de déploiement disponibles dans la bibliothèque DacFx .NET. Ces options sont les suivantes :
- ignorer l’espace blanc de découpage
- ignorer les schémas de partition
- ignorer l’ordre des colonnes
- supprimer les index qui ne sont pas dans la source
- bloquer la perte éventuelle de données
Les types d'objets inclus dans la comparaison peuvent également être configurés. Ces objets comprennent les tables, les procédures stockées, les index, les autorisations, les types définis par l'utilisateur, etc.
Fichiers de comparaison de schémas
La définition de la comparaison de schémas peut être enregistrée sous la forme d'un fichier .scmp
, appelé fichier de comparaison de schémas. Ce fichier stocke des informations sur la comparaison des schémas en XML et comprend :
- les informations sur les connexions source et cible
- les options de comparaison
- les types d’objets exclus
Un fichier .scmp
peut être ouvert dans Visual Studio ou Azure Data Studio pour exécuter facilement la même comparaison ultérieurement ou pour partager la comparaison avec d'autres personnes.
Lancer et utiliser la comparaison de schémas
Dans le menu Outils de Visual Studio, sélectionnez SQL Server, puis Nouvelle comparaison de schémas.
Dans l'Explorateur de solutions vous pouvez aussi cliquer avec le bouton droit sur le projet TradeDev, puis sélectionner Comparaison de schémas.
La fenêtre Comparaison de schémas s'ouvre et Visual Studio lui assigne automatiquement un nom, tel que
SqlSchemaCompare1
.Deux menus déroulants séparés par une flèche verte s’affichent juste au-dessous de la barre d’outils de la fenêtre Comparer les schémas. Ces menus vous permettent de sélectionner les définitions de base de données pour vos source et cible de comparaison.
Dans le menu déroulant Sélectionner une source, sélectionnez Sélectionner une source. La boîte de dialogue Sélectionner le schéma source s’ouvre.
Si vous avez ouvert la fenêtre Comparer les schémas en cliquant avec le bouton droit sur le nom du projet, le schéma source est déjà renseigné et vous pouvez passer à l'étape 4.
Terminez les sélections pour une source de comparaison de schémas en choisissant un projet, une connexion de base de données ou un fichier .dacpac. La source est la définition de la base de données que vous souhaitez utiliser comme référence pour les modifications apportées à la cible.
Dans la liste déroulante Sélectionner une cible de la fenêtre Comparer les schémas, choisissez Sélectionner une cible. La boîte de dialogue Sélectionner le schéma cible s’ouvre. Terminez les sélections pour une cible de comparaison de schémas en choisissant un projet, une connexion de base de données ou un fichier .dacpac. La cible est la définition de la base de données que vous souhaitez évaluer et à laquelle vous souhaitez éventuellement apporter des modifications.
Vous pouvez aussi sélectionner le bouton Options dans la barre d’outils de la fenêtre Comparer les schémas pour spécifier les objets à comparer, les types de différences à ignorer et d’autres paramètres.
Sélectionnez le bouton Comparer dans la barre d’outils de la fenêtre Comparer les schémas pour démarrer la comparaison.
Lorsque la comparaison est terminée, les différences structurelles entre le projet et la base de données apparaissent dans le volet de résultats dans la partie supérieure de la fenêtre. Les résultats de comparaison regroupent toutes les différences par action (par exemple, Supprimer, Modifier ou Ajouter) par défaut. Le volet de résultats affiche une ligne pour chaque objet de base de données qui diffère dans les définitions de base de données. Chaque ligne identifie l'objet dans le schéma source ou cible (ou les deux) et l'action à effectuer sur le schéma cible pour que l'objet cible soit identique à l'objet source. Si un objet a été refactorisé et renommé ou déplacé vers un nouveau schéma, les noms source et cible sont différents, et le nom source s’affiche dans une police en gras pour mettre en évidence la différence.
Par défaut, la liste de résultats masque les objets qui sont 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). Vous pouvez sélectionner les boutons de filtre 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, tables, affichages ou procédures stockées).
Par défaut, toutes les différences sont incluses dans l'étendue de l'action Mettre à jour la cible. Vous pouvez exclure les différences que vous ne souhaitez pas synchroniser. Pour cela, désélectionnez la colonne Action au centre de chaque ligne. Vous pouvez aussi cliquer avec le bouton droit sur une ligne dans le volet de schéma et sélectionner Exclure. La ligne est immédiatement grisée. Au moment où la comparaison de schémas est utilisée pour mettre à jour la base de données cible, cette ligne n'est pas prise en compte pour les modifications en attente.
Vous pouvez aussi cliquer avec le bouton droit sur une ligne de groupe et sélectionner Exclure tout ou Inclure tout, ce qui revient à désactiver ou activer toutes les différences dans ce groupe. Lorsque vous regroupez les résultats par schéma, le fait de cliquer avec le bouton droit sur la ligne de groupe est un moyen utile d’inclure ou d’exclure toutes les modifications apportées à un schéma spécifique.
Si la ligne exclue possède des objets dépendants (par exemple, une ligne de table référencée par une ligne d'affichage), cette ligne est désactivée, mais pas sa case à cocher. Une fois toutes les lignes dépendantes de cette ligne désactivées, la ligne désactivée est désactivée. En outre, si une ligne est refactorisée (renommée ou déplacée vers un autre schéma), la case à cocher est désactivée pour cette ligne et ses lignes enfants dépendantes.
Si vous actualisez la comparaison, ces différences que vous avez choisies pour ignorer sont ignorées.
Pour mettre à jour le schéma de la cible, vous avez deux options. Vous pouvez mettre à jour la cible directement à partir de la fenêtre Comparaison de schémas si la cible est une base de données ou un projet, ou générer un script de mise à jour si la cible est une base de données ou un fichier de base de données. Un script généré apparaît dans l’Éditeur Transact-SQL, à partir duquel vous pouvez inspecter le script et l’exécuter sur une base de données.
Remarque
La comparaison de schémas graphiques est partiellement disponible dans l’aperçu des projets SQL de style SDK dans Visual Studio. Les comparaisons de schémas sont disponibles pour les bases de données et .dacpac
fichiers connectés, les projets de base de données SQL ne sont pas encore disponibles.
Dans le menu Outils de Visual Studio, sélectionnez SQL Server, puis Nouvelle comparaison de schémas.
Dans l'Explorateur de solutions vous pouvez aussi cliquer avec le bouton droit sur le projet TradeDev, puis sélectionner Comparaison de schémas.
La fenêtre Comparaison de schémas s'ouvre et Visual Studio lui assigne automatiquement un nom, tel que
SqlSchemaCompare1
.Deux menus déroulants séparés par une flèche verte s’affichent juste au-dessous de la barre d’outils de la fenêtre Comparer les schémas. Ces menus vous permettent de sélectionner les définitions de base de données pour vos source et cible de comparaison.
Dans le menu déroulant Sélectionner une source, sélectionnez Sélectionner une source. La boîte de dialogue Sélectionner le schéma source s’ouvre.
Si vous avez ouvert la fenêtre Comparer les schémas en cliquant avec le bouton droit sur le nom du projet, le schéma source est déjà renseigné et vous pouvez passer à l'étape 4.
Terminez les sélections pour une source de comparaison de schémas en choisissant un projet, une connexion de base de données ou un fichier .dacpac. La source est la définition de la base de données que vous souhaitez utiliser comme référence pour les modifications apportées à la cible.
Dans la liste déroulante Sélectionner une cible de la fenêtre Comparer les schémas, choisissez Sélectionner une cible. La boîte de dialogue Sélectionner le schéma cible s’ouvre. Terminez les sélections pour une cible de comparaison de schémas en choisissant un projet, une connexion de base de données ou un fichier .dacpac. La cible est la définition de la base de données que vous souhaitez évaluer et à laquelle vous souhaitez éventuellement apporter des modifications.
Vous pouvez aussi sélectionner le bouton Options dans la barre d’outils de la fenêtre Comparer les schémas pour spécifier les objets à comparer, les types de différences à ignorer et d’autres paramètres.
Sélectionnez le bouton Comparer dans la barre d’outils de la fenêtre Comparer les schémas pour démarrer la comparaison.
Lorsque la comparaison est terminée, les différences structurelles entre le projet et la base de données apparaissent dans le volet de résultats dans la partie supérieure de la fenêtre. Par défaut, les résultats de la comparaison regroupent toutes les différences par action (notamment, Supprimer, Modifier ou Ajouter). Le volet de résultats affiche une ligne pour chaque objet de base de données qui diffère dans les définitions de base de données. Chaque ligne identifie l'objet dans le schéma source ou cible (ou les deux) et l'action à effectuer sur le schéma cible pour que l'objet cible soit identique à l'objet source. Si un objet a été refactorisé et renommé ou déplacé vers un nouveau schéma, les noms source et cible sont différents, et le nom source s’affiche dans une police en gras pour mettre en évidence la différence.
Par défaut, la liste de résultats masque les objets qui sont 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). Vous pouvez sélectionner les boutons de filtre 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, tables, affichages ou procédures stockées).
Par défaut, toutes les différences sont incluses dans l'étendue de l'action Mettre à jour la cible. Vous pouvez exclure les différences que vous ne souhaitez pas synchroniser. Pour cela, désélectionnez la colonne Action au centre de chaque ligne. Vous pouvez aussi cliquer avec le bouton droit sur une ligne dans le volet de schéma et sélectionner Exclure. La ligne est immédiatement grisée. Au moment où la comparaison de schémas est utilisée pour mettre à jour la base de données cible, cette ligne n'est pas prise en compte pour les modifications en attente.
Vous pouvez aussi cliquer avec le bouton droit sur une ligne de groupe et sélectionner Exclure tout ou Inclure tout, ce qui revient à désactiver ou activer toutes les différences dans ce groupe. Le regroupement des résultats par schéma s'avère utile pour inclure ou exclure toutes les modifications apportées à un schéma spécifique.
Si la ligne exclue possède des objets dépendants (par exemple, une ligne de table référencée par une ligne d'affichage), cette ligne est désactivée, mais pas sa case à cocher. Une fois toutes les lignes dépendantes de cette ligne désactivées, la ligne désactivée est désactivée. En outre, si une ligne est refactorisée (renommée ou déplacée vers un autre schéma), la case à cocher est désactivée pour cette ligne et ses lignes enfants dépendantes.
Si vous actualisez la comparaison, les différences que vous avez choisies d’exclure sont ignorées.
Pour mettre à jour le schéma de la cible, vous avez deux options. Vous pouvez mettre à jour la cible directement à partir de la fenêtre Comparaison de schémas si la cible est une base de données ou un projet, ou générer un script de mise à jour si la cible est une base de données ou un fichier de base de données. Un script généré apparaît dans l’Éditeur Transact-SQL, à partir duquel vous pouvez inspecter le script et l’exécuter sur une base de données.
Des informations plus détaillées sur la comparaison de schémas dans Visual Studio Code sont disponibles dans l’article Comparaison de schémas (préversion)
Dans Visual Studio Code dans la palette de commandes (
ctrl/cmd+shift+P
), recherchez et sélectionnez MSSQL : Comparaison de schémas (préversion).Vous pouvez également cliquer avec le bouton droit sur un projet de base de données dans la vue Projets de base de données ou sur une base de données dans l'Explorateur d'objets, et sélectionner Comparer les schémas.
La fenêtre Comparer les schémas s'ouvre et une source ou une cible peut être prédéfinie en fonction du point de lancement.
Deux boutons affichant des points de suspension séparés par une flèche apparaissent juste en dessous de la barre d'outils de la fenêtre Comparer les schémas. Ces menus vous permettent de sélectionner les définitions de base de données pour vos source et cible de comparaison.
La sélection du bouton de sélection pour la source ou la cible ouvre une boîte de dialogue dans laquelle chacun peut être mis à jour. Terminez les sélections pour une source de comparaison de schémas en choisissant un projet, une connexion de base de données ou un fichier .dacpac. La source est la définition de la base de données que vous souhaitez utiliser comme référence pour les modifications apportées à la cible. La cible est la définition de la base de données que vous souhaitez évaluer et à laquelle vous souhaitez éventuellement apporter des modifications.
Une fois les sélections terminées, sélectionnez OK pour fermer la boîte de dialogue et revenir à la fenêtre Comparer les schémas.
Vous pouvez aussi sélectionner le bouton Options dans la barre d’outils de la fenêtre Comparer les schémas pour spécifier les objets à comparer, les types de différences à ignorer et d’autres paramètres.
Sélectionnez le bouton Comparer dans la barre d’outils de la fenêtre Comparer les schémas pour démarrer la comparaison.
Lorsque la comparaison est terminée, les différences structurelles entre le projet et la base de données apparaissent dans le volet de résultats dans la partie supérieure de la fenêtre. Par défaut, les résultats de la comparaison regroupent toutes les différences par action (notamment, Supprimer, Modifier ou Ajouter). Le volet de résultats affiche une ligne pour chaque objet de base de données qui diffère dans les définitions de base de données. Chaque ligne identifie l'objet dans le schéma source ou cible (ou les deux) et l'action à effectuer sur le schéma cible pour que l'objet cible soit identique à l'objet source. Si un objet a été refactorisé et renommé ou déplacé vers un nouveau schéma, les noms source et cible sont différents, et le nom source s’affiche dans une police en gras pour mettre en évidence la différence.
Par défaut, toutes les différences sont incluses dans l'étendue de l'action Mettre à jour la cible. Vous pouvez exclure les différences que vous ne souhaitez pas synchroniser. Pour cela, désélectionnez la colonne Action au centre de chaque ligne. Lorsque la comparaison de schémas est utilisée pour mettre à jour la base de données cible, cette ligne n’est pas prise en compte pour les modifications en attente.
Si la ligne exclue possède des objets dépendants (par exemple, une ligne de table référencée par une ligne d'affichage), cette ligne est désactivée, mais pas sa case à cocher. Une fois toutes les lignes dépendantes de cette ligne désactivées, la ligne désactivée est désactivée. En outre, si une ligne est refactorisée (renommée ou déplacée vers un autre schéma), la case à cocher est désactivée pour cette ligne et ses lignes enfants dépendantes.
Si vous actualisez la comparaison, les différences que vous avez choisies d’exclure sont ignorées.
Pour mettre à jour le schéma de la cible, vous avez deux options. Vous pouvez mettre à jour la cible directement à partir de la fenêtre Comparer les schémas avec le bouton Appliquer si la cible est une base de données ou un projet, ou vous pouvez générer un script de mise à jour si la cible est une base de données avec le bouton Générer un script. Un script généré apparaît dans l’Éditeur Transact-SQL, à partir duquel vous pouvez inspecter le script et l’exécuter sur une base de données.
La comparaison de schémas nécessite un outil graphique tel que Visual Studio ou Azure Data Studio.