Condividi tramite


Eseguire il debug di stored procedure

Il debugger Transact-SQL consente di eseguire il debug di stored procedure in modo interattivo visualizzando lo stack di chiamate SQL, i parametri e le variabili locali 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 tramite l'esecuzione di istruzioni.

Nota

Il debug Transact-SQL non è disponibile per il database SQL di Azure o Istanza gestita di SQL di Azure.

Per eseguire il debug di stored procedure

  1. Nella finestra motore di database Editor di query 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 seguente codice 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 SQL Server Esplora oggetti fare clic con il pulsante destro del mouse sullo stesso motore di database e scegliere Nuova query.... Assicurarsi di essere connessi allo stesso database in cui è stata creata la stored procedure.

  5. Incollare il codice seguente nella finestra 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. Fare clic sulla freccia a discesa sul pulsante freccia verde nella barra degli strumenti dell'editor Transact-SQL e selezionare Esegui con debugger per eseguire la query contestualmente al debug.

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

  9. Verificare che la finestra Variabili locali sia aperta. In caso contrario, scegliere Finestre dal menu Debug, quindi Locale.

  10. Premere F11 per eseguire istruzioni sulla query. Si noti che i parametri della stored procedure e i rispettivi valori vengono visualizzati nella finestra Variabili locali. In alternativa, passare il mouse sul parametro @name nella clausola INSERT per visualizzarne il valore T-SQL Debugger Test assegnato.

  11. Selezionare Test debugger T-SQL nella casella di testo. Digitare Convalida modifica e premere INVIO per modificare il valore della variabile name durante l'esecuzione del debug. È inoltre possibile modificare il relativo valore nella finestra Variabili locali. Si noti che il valore del parametro è rosso, indicando una modifica.

  12. Premere F10 per eseguire istruzioni sul 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.