Visual Studio 2013 – Comparer les données de 2 bases SQL Server

Microsoft avait commencé à sérieusement enrichir les outils de gestion des bases de données dans Visual Studio 2012, et l’effort a été poursuivi dans Visual Studio 2013.
L’EDI nous offre aujourd’hui plusieurs outils pour gérer/analyser nos bases de données en développement. Nous allons ici regarder de plus près à l’un d’eux, le comparateur de données.

Lorsque l’on développe une application utilisant une base de données, on se retrouve généralement avec plusieurs version de la/les base(s) (local pour chaque développeur, développement, intégration, production, etc…).
Il peut vite devenir compliqué pour l’équipe, ou au moins pour la personne en charge des environnements, de tenir ces bases à jour. Heureusement Visual Studio vient simplifier ces opérations pour le plus grand bonheur des développeurs qui l’utilisent 😉

Je ne parlerai pas ici du schéma, Visual Studio nous propose différentes manières de le gérer, on peut aussi le faire via des outils externes, il en existe des tas. Nous allons ici nous intéresser à un outil plus rare, la comparaison des données et leurs mises à jour.
Et cerise sur le gâteau, cet outil est disponible dès Visual Studio 2013 Pro (la plus petite édition de Visual Studio)

Je ne dispose que d’un Visual Studio en anglais, mais les termes sont assez simples à traduire, et avec les captures d’écrans, vous devriez pouvoir retrouver ces outils facilement.

Commençons par nous rendre dans le menu Tools -> SQL Server et prenons New Data Comparison
img1.jpg

La fenêtre suivante va s’ouvrir vous permettant de choisir les 2 bases à comparer.
img2.jpg

Les listes déroulantes sont alimentées avec les connexions que vous avez déjà établies dans vos projets. Vous pouvez les éditer ou en créer de nouvelles à partir de cette fenêtre.
Une fois vos 2 bases sélectionnées, vous pouvez ajuster les options de comparaison via les 4 cases à cocher :

  • Different Records : seulement les enregistrements existants dans la source et dans la cible mais pas avec les mêmes valeurs
  • Only in Source : enregistrements uniquement présents dans la source et pas dans la cible
  • Only in Target : l’inverse, uniquement présents dans la cible et pas dans la destination
  • Identical Record : L’outil fera ressortir également les lignes identiques

Une fois vos choix fait, vous pouvez cliquer sur Next. La connexion au(x) serveur(x) commence, et Visual Studio va ensuite vous afficher la liste des éléments comparables (tables, vues) et sur quel critère (par défaut la clef primaire si elle existe)
img3.jpg

Dans mon cas, j’ai demandé la comparaison de la table candidat, qui peut se faire sur sa clef primaire PK_Candidat ou sur son index IX_NomPrenomDateNaissance

Une fois que vous avez sélectionné vos objets à comparer, vous pouvez cliquer sur Finish pour lancer la comparaison. Une fois achevée, vous arriverez sur cette page :
img4.jpg

En haut, vous retrouvez chaque élément que vous avez demandé, et le nombre de résultats pour chaque catégorie.
Cliquez sur un élément, les grilles du bas vous afficheront le détail avec la possibilité de décocher/cocher des cases. Ces cases vous permettent de spécifier si cette ligne doit être prise en compte dans la mise à jour.

Regardons maintenant les options qui s’offrent à vous via la barre d’outils
img5.jpg

  • 1 : vous permet de ré-ouvrir le menu de sélection des bases/éléments, pour modifier vos paramètres de comparaison
  • 2 : relancer la comparaison avec les mêmes paramètres
  • 3 : arrêter l’opération (utilisable lors de la comparaison, de la modification ou de la génération du script)
  • 4 : Génère le script de création/modification/suppression des lignes pour une exécution ultérieure (ou par exemple, pour envoyer au client)
  • 5 : lance la mise à jour automatiquement sur la base de destination
  • 6 : Différents filtres pour vous faciliter la sélection, utilisables en fonction de vos paramètres et des données comparées

Une fois que vous aurez vos bases de configurées dans vos liens, vous aurez la possibilité de lancer la comparaison/mise à jour des données en quelques clics de souris. Il vous sera possible de synchroniser vos environnements en 5min, directement dans Visual Studio.
Et vous pouvez en bonus générer les scripts si vous en avez besoin pour une utilisation ultérieure.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.