共用方式為


針對預存程序進行偵錯

Transact-SQL 偵錯工具可讓您顯示 SQL 預存程序的 SQL 呼叫堆疊、區域變數和參數,以互動方式對預存程序進行偵錯。 Transact-SQL 偵錯工具會支援檢視和修改區域變數和參數,並檢視全域變數。 也可讓您在針對 Transact-SQL 指令碼偵錯時,控制及管理中斷點。

此範例逐步示範如何建立 Transact-SQL 預存程序及如何對這些預存程序進行偵錯。

注意

Transact-SQL 偵錯不適用於 Azure SQL Database 或 Azure SQL 受控執行個體。

若要偵錯預存程序

  1. 在 [資料庫引擎查詢編輯器] 視窗中,連接至 SQL Server 資料庫引擎的執行個體。 選取一個資料庫,您可以在該資料庫中建立範例預存程序。

  2. 將下列程式碼貼到查詢編輯器中。

    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. 按 F5 以執行 Transact-SQL 程式碼。

  4. 在 SQL Server 物件總管 中,以滑鼠右鍵按一下相同的資料庫引擎,然後選取 [新增查詢]。請確定您已連線至建立與預存程序所在處的相同資料庫。

  5. 將下列程式碼貼入查詢視窗。

    EXEC [dbo].[AddProduct] 50, N'T-SQL Debugger Test';  
    GO  
    
  6. 按一下左方視窗邊界,將中斷點加入至 EXEC 陳述式。

  7. 在 Transact-SQL 編輯器工具列上,按綠色箭頭按鈕上的下拉箭頭,然後選取 [使用偵錯工具執行],以在偵錯模式下執行查詢。

  8. 或者,您可以從 SQL 功能表開始執行偵錯。 選取 [SQL -> [Execute with Debugger]

  9. 確認 [區域變數] 視窗已開啟。 如果未開啟,請按一下 [偵錯] 功能表,然後依序選取 [視窗] 和 [區域變數]。

  10. 按 F11 逐步執行查詢。 請注意,預存程序的參數及各自的值會顯示在 [區域變數] 視窗中。 或者,將滑鼠停留在 INSERT 子句的 @name 參數上,就會看到指派至這個參數的 T-SQL 偵錯工具測試值。

  11. 在文字框中選取 [T-SQL 偵錯工具測試]。 輸入 Validate Change 並按 ENTER,變更偵錯時 name 變數的值。 您也可以在 [區域變數] 視窗中變更其值。 請注意,參數的值會以紅色顯示,代表變更內容。

  12. 按 F10 不進入其餘的程式碼。

  13. 偵錯完成時,請查詢 Product 資料表以檢視其內容。

    SELECT * FROM [dbo].[Products];  
    GO
    
  14. 在結果視窗中,請注意資料表中會有新的資料列。