Condividi tramite


Effettuare il debug delle stored procedure

Il debugger Transact-SQL consente di eseguire il debug interattivo delle stored procedure visualizzando lo stack di chiamate SQL, le variabili locali e i parametri per la stored procedure SQL. Il debugger Transact-SQL supporta la visualizzazione e la modifica di variabili e parametri locali, visualizzando variabili globali. Consente inoltre di controllare e gestire i punti di interruzione durante il debug dello script Transact-SQL.

In questo esempio viene illustrato come creare ed eseguire il debug di una stored procedure Transact-SQL eseguendo l'istruzione in essa.

Nota

Il debugging Transact-SQL non è disponibile per il database SQL di Azure o l'istanza SQL gestita di Azure.

Per eseguire il debug di procedure memorizzate

  1. Nella finestra Editor query del motore di database connettersi a un'istanza del motore di database di SQL Server. Selezionare un database in cui è possibile creare una stored procedure di esempio.

  2. Incollare il codice seguente nell'editor di query.

    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. Premere F5 per eseguire il codice Transact-SQL.

  4. In "Esplora oggetti di SQL Server", fare clic con il pulsante destro del mouse sullo stesso motore di database e selezionare Nuova query.... Assicurati di essere connesso allo stesso database in cui hai creato la stored procedure.

  5. Incollare il codice seguente nella finestra di query.

    EXEC [dbo].[AddProduct] 50, N'T-SQL Debugger Test';  
    GO  
    
  6. Fare clic sul margine sinistro della finestra per aggiungere un punto di interruzione all'istruzione EXEC.

  7. Premere la freccia a discesa sul pulsante freccia verde sulla barra degli strumenti dell'editor Transact-SQL e selezionare Esegui con debugger per eseguire la query con debug.

  8. In alternativa, è possibile avviare il debug dal menu SQL. Selezionare SQL ->Esegui con il debugger.

  9. Assicurati che la finestra variabili locali sia aperta. In caso contrario, fare clic sul menu Debug, selezionare Windows e Local.

  10. Premere F11 per avanzare nella query. Si noti che i parametri della procedura di memorizzazione e i rispettivi valori sono visualizzati nella finestra Variabili locali. In alternativa, passa il puntatore del mouse sul parametro @name nella clausola INSERT per vedere il valore del Test del debugger T-SQL assegnato.

  11. Selezionare Test del debugger T-SQL nella casella di testo. Digitare Convalida modifica e premere INVIO per modificare il valore della variabile name durante il debug. È anche possibile modificarne il valore nella finestra variabili locali. Si noti che il valore del parametro è rosso, che indica una modifica.

  12. Premere F10 per eseguire il passaggio del codice rimanente.

  13. Al termine del debug, eseguire una query sulla tabella product per visualizzarne il contenuto.

    SELECT * FROM [dbo].[Products];  
    GO
    
  14. Nella finestra dei risultati si noti che nella tabella sono presenti nuove righe.