Exécuter le débogueur Transact-SQL
S'applique à : SQL Server
Vous pouvez démarrer le débogueur Transact-SQL après avoir ouvert une fenêtre de l’éditeur de requête du Moteur de base de données . Vous pouvez définir des options pour personnaliser l'exécution du débogueur et exécuter votre code Transact-SQL en mode débogage jusqu'à ce que vous arrêtiez le débogueur.
Démarrage et arrêt du débogueur
La configuration requise pour démarrer le débogueur Transact-SQL est la suivante :
Si l'éditeur de requêtes du moteur de base de données est connecté à une instance du moteur de base de données sur un autre ordinateur, vous devez configurer le débogueur pour le débogage à distance. Pour plus d’informations, consultez Configurer des règles de pare-feu avant d’exécuter le débogueur Transact-SQL.
La fenêtre de l’éditeur de requête du moteur de base de données doit être connectée en utilisant une connexion via l’authentification Windows ou l’authentification SQL Server qui est membre du rôle serveur fixe sysadmin.
La fenêtre de l'éditeur de requêtes du moteur de base de données doit être connectée à une instance du moteur de base de données SQL Server. Vous ne pouvez pas exécuter le débogueur quand la fenêtre de l’éditeur de requête est connectée à une instance en mode mono-utilisateur.
Nous recommandons de déboguer le code Transact-SQL sur un serveur de test, et non sur un serveur de production, pour les raisons suivantes :
Le débogage est une opération hautement privilégiée. Par conséquent, seuls les membres du rôle serveur fixe sysadmin sont autorisés à déboguer dans SQL Server.
Les sessions de débogage sont en général assez longues lorsque vous investiguez les opérations de plusieurs instructions Transact-SQL. Les verrous, tels que les verrous de mise à jour, qui sont acquis par la session peuvent être appliqués pendant des périodes prolongées, jusqu'à ce que la session soit terminée ou jusqu'à ce que la transaction soit validée ou restaurée.
Au démarrage du débogueur Transact-SQL, la fenêtre de l’éditeur de requête passe en mode débogage. Lorsque la fenêtre de l'éditeur de requête entre en mode débogage, le débogueur s'arrête à la première ligne de code. Vous pouvez ensuite parcourir le code, suspendre l’exécution au niveau d’instructions Transact-SQL spécifiques et utiliser les fenêtres du débogueur pour examiner l’état d’exécution actuel. Vous pouvez lancer le débogueur en sélectionnant le bouton débogueur dans la barre d'outils requête ou en sélectionnant Start Debugging dans le menu déboguer.
La fenêtre de l'éditeur de requête reste en mode débogage jusqu'à la fin de la dernière instruction dans la fenêtre de l'éditeur de requête ou jusqu'à l'arrêt du mode débogage. Vous pouvez arrêter le mode débogage et l'exécution d'instructions en utilisant l'une des méthodes suivantes :
Dans le menu Déboguer, sélectionnez Arrêter le débogage.
On the Debug toolbar, select the Stop Debugging button.
Dans le menu Requête, sélectionnez Annuler l'exécution de la requête.
Dans la barre d'outils Requête, sélectionnez le bouton Annuler l'exécution de la requête.
Vous pouvez également arrêter le mode débogage et laisser l’exécution des instructions Transact-SQL restantes se terminer en selectionnant Détacher tout dans le menu Déboguer.
Contrôle du débogueur
Vous pouvez contrôler le mode de fonctionnement du débogueur Transact-SQL à l’aide des commandes de menu, des barres d’outils et des raccourcis suivants :
Menu Déboguer et barre d'outils Déboguer . Le menu Déboguer et la barre d'outils Déboguer sont inactifs tant que le focus ne se trouve pas sur une fenêtre ouverte de l'éditeur de requête. Ils restent actifs jusqu'à la fermeture du projet actif.
Raccourcis clavier du débogueur.
Menu contextuel Éditeur de requête. Le menu contextuel s'affiche lorsque vous cliquez avec le bouton droit sur une ligne dans une fenêtre de l'éditeur de requête. Lorsque la fenêtre de l'éditeur de requête est en mode débogage, le menu contextuel affiche les commandes du débogueur qui s'appliquent à la ligne ou à la chaîne sélectionnée.
Éléments de menu et commandes contextuelles dans les fenêtres ouvertes par le débogueur, telles que les fenêtres Espion ou Points d'arrêt .
Le tableau suivant répertorie les commandes de menu, les boutons de barre d'outils et les raccourcis clavier du débogueur.
Commande du menu Déboguer | Commande de raccourci de l'éditeur | Bouton de la barre d'outils | Raccourci clavier | Action |
---|---|---|---|---|
Fenêtres/Points d'arrêt | Non disponible | Points d'arrêt | Ctrl+Alt+B | Affiche la fenêtre Points d'arrêt , dans laquelle vous pouvez afficher et gérer les points d'arrêt. |
Fenêtres/Espion/Espion 1 | Non disponible | Points d'arrêt/Espion/Espion 1 | Ctrl+Alt+W, 1 | Affiche la fenêtre Espion 1 . |
Fenêtres/Espion/Espion 2 | Non disponible | Points d'arrêt/Espion/Espion 2 | Ctrl+Alt+W, 2 | Affiche la fenêtre Espion 2 . |
Fenêtres/Espion/Espion 3 | Non disponible | Points d'arrêt/Espion/Espion 3 | Ctrl+Alt+W, 3 | Affiche la fenêtre Espion 3 . |
Fenêtres/Espion/Espion 4 | Non disponible | Points d'arrêt/Espion/Espion 4 | Ctrl+Alt+W, 4 | Affiche la fenêtre Espion 4 . |
Fenêtres/Variables locales | Non disponible | Points d'arrêt/Variables locales | Ctrl+Alt+V, L | Affiche la fenêtre Variables locales . |
Fenêtres/Pile des appels | Non disponible | Points d'arrêt/Pile des appels | Ctrl+Alt+C | Affiche la fenêtre Pile des appels . |
Fenêtres/Threads | Non disponible | Points d'arrêt/Threads | Ctrl+Alt+H | Affiche la fenêtre Threads . |
Continuer | Non disponible | Continuer | Alt+F5 | Exécuter le code jusqu'au point d'arrêt suivant. La fonction Continuer n'est pas active tant que vous ne vous concentrez pas sur une fenêtre de l'éditeur de requêtes en mode débogage. |
Démarrer le débogage | Non disponible | Démarrer le débogage | Alt+F5 | Fait passer une fenêtre de l'éditeur de requête en mode débogage et exécute le code jusqu'au premier point d'arrêt. Si le focus se trouve sur une fenêtre de l'éditeur de requête en mode débogage, Démarrer le débogage est remplacé par Continuer. |
Interrompre tout | Non disponible | Interrompre tout | Ctrl+Alt+Pause | Cette fonctionnalité n’est pas utilisée par le débogueur Transact-SQL. |
Arrêter le débogage | Non disponible | Arrêter le débogage | Maj+F5 | Fait sortir une fenêtre de l'éditeur de requête du mode débogage et restaure le mode normal. |
Détacher tout | Non disponible | Non disponible | Non disponible | Arrête le mode débogage, mais exécute les instructions restantes dans la fenêtre de l'éditeur de requête. |
Pas à pas détaillé | Non disponible | Pas à pas détaillé | F11 | Exécute l'instruction suivante et ouvre une nouvelle fenêtre de l'éditeur de requête en mode débogage si l'instruction suivante exécute une procédure stockée, un déclencheur ou une fonction. |
Pas à pas principal | Non disponible | Pas à pas principal | F10 | Identique à Pas à pas détaillé, à la différence près que les fonctions, les procédures stockées ou les déclencheurs ne font pas l'objet d'un débogage. |
Pas à pas sortant | Non disponible | Pas à pas sortant | Maj+F11 | Exécute le code restant dans un déclencheur, une fonction ou une procédure stockée sans stopper aux points d'arrêt. Le mode débogage normal reprend lorsque le contrôle est retourné au code ayant appelé le module. |
Non disponible | Exécuter jusqu'au curseur | Non disponible | Ctrl+F10 | Exécute la totalité du code du dernier emplacement d'arrêt à l'emplacement du curseur actuel sans stopper aux points d'arrêt. |
Espion express | Espion express | Non disponible | Ctrl+Alt+Q | Affiche la fenêtre Espion express . |
Basculer le point d’arrêt | Point d'arrêt/Insérer un point d'arrêt | Non disponible | F9 | Positionne un point d’arrêt sur l’instruction Transact-SQL actuelle ou sélectionnée. |
Non disponible | Point d'arrêt/Supprimer un point d'arrêt | Non disponible | Non disponible | Supprime le point d'arrêt de la ligne sélectionnée. |
Non disponible | Point d'arrêt/Désactiver un point d'arrêt | Non disponible | Non disponible | Désactive le point d'arrêt sur la ligne sélectionnée. Le point d'arrêt reste sur la ligne de code, mais l'exécution ne s'arrête pas tant qu'il n'est pas réactivé. |
Non disponible | Point d'arrêt/Activer le point d'arrêt | Non disponible | Non disponible | Active le point d'arrêt sur la ligne sélectionnée. |
Supprimer tous les points d'arrêt | Non disponible | Non disponible | Ctrl+Maj+F9 | Supprime tous les points d'arrêt. |
Désactiver tous les points d'arrêt | Non disponible | Non disponible | Non disponible | Désactive tous les points d'arrêt. |
Non disponible | Ajouter un espion | Non disponible | Non disponible | Ajoute l'expression sélectionnée à la fenêtre Espion . |