APSQL

Déboguer le Transact SQL

SQL Server 2008 ou plus exactement SQL Server Management Studio (SSMS), dispose d'un outils de débogage Transact SQL afin de mettre au point de façon rapide et simple les procédures et fonctions.

Voyons d'un peu plus près comment cela fonctionne. Tout d'abord lorsque l'on ouvre une fenêtre de type requete depuis SSMS, le menu général est modifié et le choix débogage apparait.

menu débogage de SSMS

Pour explorer les possibilités offertes par cet outil, l'opréation la plus simple consiste à le mettre en pratique.

Une fois le script écris, l'ajout/suppression des points d'arrêt s'effectue en double cliquant dans la barre situé à gauche de la ligne sur laquelle le point d'arrêt doit être défini. Il est également possible d'utiliser le raccourci clavier F9.

script avec point d'arret

Il est possible d'avoir une vue synthétique des différents points d'arrets qui ont été définis en demande l'affichage de la fenetre des points d'arrêts. Cette fenetre est accessible depuis le menu Debogae - Fenetres - Points d'arret ou bien par le raccourçi clavier Ctrl+Alt+B.

Fenetre des points d'arrets

Il est également possible de supprimer un ou plusieurs points d'arrêt de façon simple à partir de cette fenetre.

Pour lancer le script en mode débogage il ne faut bien sur pas utiliser le raccourçi clavier F5 qui permet d'executer un script en mode normal mais il est nécessaire de passer par Débogage - Démarrer le débogage ou bien d'utiliser le racourci clavier Alt+F5. Avant de lancer l'exécution du script SSMS change de perspective et donc modifie l'oganisation de fenêtres.

Organisation de SSMS en mode débogage

Il est alors possible d'exécuter simplement le script en mode pas , de modifier les points d'arrêts (ajouter/ supprimer/ désactiver), evaluer la valeur prise par une variable, .... Tous ces choix sont accessible soit de façon classique par le menu, les raccourcis clvier, le menu contextuel ou bien la barre d'outil scpécifique au débogage.

Menu contextuel en mode débogage

Menu contextuel du mode débogage

Barre d'outil du mode débogage

Barre d'outils du mode débogage

Déboger un déclencheur

La même technique de débogage peut être utilisée pour mettre au point un déclencheur TSQL. La méthode est légèrement différente car il est nécessaire de mettre en place le déclencheur (à l'aide de l'instruction CREATE TRIGGER) puis déxécuter en mode débogage un script Transact SQL qui déclenche l'exécution de ce déclencheur.

Par exemple un déclencheur en mode INSTEAD OF est défnie sur la table des catégories de la façon suivante:

Barre d'outil du mode débogage

Pour exécuter ce déclencheur en mode débogage, le script de test suivant est exécutée avec un point d'arrêt sur l'instruction INSERT qui déclenche l'éxécution du trigger.

Barre d'outil du mode débogage

Arrivé au niveau du point d'arrêt il faut alors demander une exécution en mode pas à pas détaillé ou F11. Le débogeur permet alors d'explorer en mode pas à pas l'éxécution du déclencheur.