Freigeben über


Debuggen von gespeicherten Prozeduren

Mit dem Transact-SQL-Debugger können Sie gespeicherte Prozeduren interaktiv debuggen, indem Sie die SQL-Aufrufliste, lokale Variablen und Parameter für die gespeicherte SQL-Prozedur anzeigen. Der Transact-SQL-Debugger unterstützt das Anzeigen und Ändern lokaler Variablen und Parameter, das Anzeigen globaler Variablen. Er bietet auch die Möglichkeit, Breakpoints beim Debuggen Ihres Transact-SQL-Skripts zu steuern und zu verwalten.

In diesem Beispiel wird veranschaulicht, wie eine gespeicherte Transact-SQL-Prozedur durch schrittweises Ausführen erstellt und gedebuggt wird.

Hinweis

Das Debuggen von Transact-SQL ist für Azure SQL-Datenbank oder Azure SQL Managed Instance nicht verfügbar.

So debuggen Sie gespeicherte Prozeduren

  1. Stellen Sie im Fenster Datenbank-Engine Abfrage-Editor eine Verbindung mit einer Instanz des SQL Server-Datenbank-Engine her. Wählen Sie eine Datenbank aus, in der Sie eine gespeicherte Prozedur als Beispiel erstellen können.

  2. Fügen Sie im Abfrage-Editor den folgenden Code ein.

    CREATE TABLE [dbo].[Product] ([Id] INT, [Name] NVARCHAR(128))
    
    CREATE PROCEDURE [dbo].[AddProduct]  
    @id INT,  
    @name NVARCHAR(128)  
    AS  
    BEGIN
        INSERT INTO [dbo].[Product] ([Id], [Name]) VALUES (@id, @name) 
        SELECT [Name] FROM [dbo].[Product] WHERE [Id] = @id
        DECLARE @nextid INT
        SET @nextid = @id + 1
        INSERT INTO [dbo].[Product] ([Id], [Name]) VALUES (@id, @name) 
        SELECT [Name] FROM [dbo].[Product] WHERE [Id] = @nextid
    END
    
  3. Drücken Sie F5, um den Transact-SQL-Code auszuführen.

  4. Klicken Sie in SQL Server Objekt-Explorer mit der rechten Maustaste auf das gleiche Datenbank-Engine, und wählen Sie Neue Abfrage aus. Stellen Sie sicher, dass Sie mit derselben Datenbank verbunden sind, in der Sie die gespeicherte Prozedur erstellt haben.

  5. Fügen Sie im Abfragefenster den folgenden Code ein:

    EXEC [dbo].[AddProduct] 50, N'T-SQL Debugger Test';  
    GO  
    
  6. Klicken Sie auf den linken Rand des Fensters, um der EXEC-Anweisung einen Breakpoint hinzuzufügen.

  7. Klicken Sie auf der Transact-SQL-Editor-Symbolleiste auf der grünen Pfeilschaltfläche auf den Dropdownpfeil, und wählen Sie Mit Debugger ausführen aus, um die Abfrage mit aktiviertem Debugging auszuführen.

  8. Alternativ können Sie mit dem Debuggen über das SQL-Menü beginnen. Wählen Sie SQL ->Ausführen mit Debugger aus.

  9. Vergewissern Sie sich, dass das Fenster Lokal geöffnet ist. Wenn dies nicht der Fall ist, klicken Sie im Menü Debuggen auf Fenster und anschließend auf Lokal.

  10. Drücken Sie F11, um einen Einzelschritt in die Abfrage auszuführen. Beachten Sie, dass die Parameter der gespeicherten Prozedur und deren jeweilige Werte im Fenster Lokal angezeigt werden. Sie können auch mit der Maus auf den @name-Parameter in der INSERT-Klausel zeigen, um den zugewiesenen Wert T-SQL Debugger-Test zu sehen.

  11. Wählen Sie im Textfeld den T-SQL-Debugger-Test aus. Geben Sie Änderung bestätigen ein, und drücken Sie die EINGABETASTE, um den Wert der name-Variable beim Debuggen zu ändern. Sie können den zugehörigen Wert auch im Fenster Lokal ändern. Der Wert des Parameters wird rot angezeigt, womit angegeben wird, dass er geändert wurde.

  12. Drücken Sie F10, um den verbleibenden Code zu überspringen.

  13. Wenn das Debuggen abgeschlossen ist, fragen Sie die Produkttabelle ab, um deren Inhalt anzuzeigen.

    SELECT * FROM [dbo].[Products];  
    GO
    
  14. Beachten Sie im Ergebnisfenster, dass in der Tabelle neue Zeilen vorhanden sind.