Freigeben über


Transact-SQL-Debugger

Gilt für:SQL Server

Der Transact-SQL-Debugger ist bei der Fehlersuche in Transact-SQL-Code hilfreich, weil sich mit ihm das Laufzeitverhalten des Codes untersuchen lässt. Nachdem Sie das Fenster des Abfrage-Editors für die Datenbank-Engine in den Debugmodus geschaltet haben, können Sie die Ausführung bei bestimmten Codezeilen anhalten und die Informationen und Daten untersuchen, die von diesen Transact-SQL-Anweisungen verwendet oder zurückgegeben werden.

T-SQL-Debuggen ist in SQL Server Data Tools für Visual Studio verfügbar.

Schrittweises Durchlaufen von Transact-SQL-Code

Der Transact-SQL-Debugger stellt die folgenden Optionen bereit, die Sie zum Navigieren durch Transact-SQL-Code verwenden können, wenn sich das Fenster des Abfrage-Editors für die Datenbank-Engine im Debugmodus befindet:

  • Festlegen von Breakpoints für einzelne Transact-SQL-Anweisungen

    Ein Breakpoint gibt einen Punkt an, an dem die Ausführung angehalten werden soll, um Daten zu untersuchen. Wenn Sie den Debugger starten, hält er an der ersten Codezeile im Abfrage-Editor-Fenster an. Zur Ausführung des ersten Breakpoint verwenden Sie Weiter. Sie können Weiter auch verwenden, um die Ausführung von einer beliebigen Position, an der das Fenster angehalten wurde, bis zum nächsten Breakpoint fortzusetzen. Sie können Breakpoints bearbeiten, um Aktionen anzugeben, wie z. B. die Bedingungen, unter denen der Breakpoint die Ausführung anhalten soll, oder im Fenster Ausgabe auszugebende Informationen. Außerdem können Sie den Ort des Breakpoints ändern.

  • Einen Einzelschritt in die nächste Anweisung ausführen

    Mit dieser Option können Sie Schritt für Schritt durch eine Gruppe von Anweisungen navigieren und dabei deren Verhalten beobachten.

  • Ausführen gespeicherter Prozeduren oder Funktionen im Einzel- oder Prozedurschrittmodus.

    Wenn Sie sicher sind, dass in der gespeicherten Prozedur keine Fehler vorliegen, können Sie sie überspringen. Die Prozedur wird vollständig ausgeführt, und die Ergebnisse werden an den Code zurückgegeben.

    Wenn Sie eine gespeicherte Prozedur oder eine Funktion debuggen möchten, können Sie das Modul im Einzelschrittmodus ausführen. Ein neues Datenbank-Engine Abfrage-Editor Fenster wird geöffnet, das mit dem Quellcode für das Modul aufgefüllt wird. Das Fenster befindet sich im Debuggingmodus, und die Ausführung hält bei der ersten Anweisung im Modul an. Sie können dann durch den Modulcode navigieren, indem Sie z. B. Breakpoints festlegen oder den Code schrittweise durchlaufen.

Weitere Informationen dazu, wie Sie mit dem Debugger in Code navigieren können, finden Sie unter Schritt durch Transact-SQL Code.

Anzeigen von Debuggerinformationen

Jedes Mal, wenn der Debugger die Ausführung bei einer bestimmten Transact-SQL-Anweisung anhält, können Sie den aktuellen Ausführungsstatus in den folgenden Debuggerfenstern anzeigen:

  • Lokale Variablen und Überwachung. Diese Fenster zeigen derzeit zugeordnete Transact-SQL-Ausdrücken an. Ausdrücke sind Transact-SQL-Klauseln, die zu einem einzelnen Skalarausdruck ausgewertet werden. Der Transact-SQL-Debugger unterstützt die Anzeige von Ausdrücken, die auf Transact-SQL-Variablen oder -Parameter oder auf die integrierten Funktionen verweisen, deren Namen mit @@ beginnen. Diese Fenster zeigen auch die Datenwerte an, die den Ausdrücken derzeit zugewiesen sind.

  • QuickWatch. In diesem Fenster wird der Wert eines Transact-SQL-Ausdrucks angezeigt. Außerdem können Sie diesen Ausdruck in einem Überwachungsfenster speichern.

  • Haltepunkte. In diesem Fenster können die derzeit festgelegten Breakpoints angezeigt und verwaltet werden.

  • Aufrufstapel. In diesem Fenster wird der aktuelle Ausführungsort angezeigt. Außerdem zeigt es Informationen über die Art und Weise an, in der die Ausführung vom ursprünglichen Abfrage-Editor-Fenster über Funktionen, gespeicherte Prozeduren oder Trigger geleitet wurde, um den aktuellen Ausführungsort zu erreichen.

  • Ausgabe. In diesem Fenster werden verschiedene Meldungen und Programmdaten angezeigt, wie z. B. Systemmeldungen des Debuggers.

  • Ergebnisse und Nachrichten. Diese Registerkarten im Abfrage-Editor-Fenster zeigen die Ergebnisse zuvor ausgeführter Transact-SQL Anweisungen an.

Bekannte Probleme und Einschränkungen

Der T-SQL-Debugger gilt nur für SQL Server-Instanzen. Der Debugger unterstützt nicht das Debuggen von Transact-SQL-Code, der auf Azure SQL-Datenbank, Azure SQL Managed Instance oder SQL-Datenbank in Fabric ausgeführt wird.

Unter bestimmten Bedingungen können die Hervorhebungen und Haltepunkte der Zeilen im T-SQL-Debugger aus dem Takt geraten, während Sie ein SQL-Skript durchlaufen, wodurch sie nicht mehr mit dem tatsächlichen Ausführungspunkt synchron sind. Das Problem kann in mehreren Szenarien auftreten, einschließlich eines Kommentars am Anfang des Skripts oder leerer Zeilen nach GO-Anweisungen.

Transact-SQL-Debuggertasks

Taskbeschreibung Artikel
Beschreibt das Konfigurieren des Transact-SQL-Debuggers für das Remotedebuggen. Konfigurieren von Firewallregeln vor dem Ausführen des Transact-SQL-Debuggers
Beschreibt, wie der Betrieb des Debuggers gestartet, angehalten und gesteuert wird. Ausführen des Transact-SQL Debuggers
Beschreibt die Verwendung des Transact-SQL-Debuggers zum Ausführen von Code in Einzelschritten. Transact-SQL-Code durchschreiten
Beschreibt die Verwendung des Transact-SQL-Debuggers zum Ausführen von Code für gespeicherte Prozedur in Einzelschritten. Debuggen gespeicherter Prozeduren
Beschreibt die Verwendung des Debuggers zum Anzeigen von Transact-SQL-Daten, z. B. Parametern und Variablen, sowie von Systeminformationen. Transact-SQL Debuggerinformationen