调试存储过程

使用 Transact-SQL 调试器,可以通过为 SQL 存储过程显示 SQL 调用堆栈、局部变量和参数,以交互方式调试存储过程。 Transact-SQL 调试程序支持查看和修改局部变量和参数,以及查看全局变量。 它还提供在调试 Transact-SQL 脚本时控制和管理断点的能力。

本示例说明如何通过单步执行创建和调试 Transact-SQL 存储过程。

注意

Transact-SQL 调试对于 Azure SQL 数据库或 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 - >使用调试程序执行

  9. 请确保“本地”窗口打开。 如果未打开,则单击“调试”菜单,选择“窗口”和“本地”。

  10. 按 F11 键逐行执行该查询。 注意,存储过程的参数及其各自的值显示在“局部变量”窗口中。 或者,将鼠标指针悬停在 INSERT 子句中的 @name 参数上方,你将看到要传递给它的 T-SQL 调试程序测试值。

  11. 在文本框中选择“T-SQL 调试程序测试”。 键入“验证更改”,然后按下 ENTER 以便在调试时更改 name 变量的值。 还可以在“局部变量”窗口中更改其值。 请注意,该参数的值现在显示为红色,表示它已经更改。

  12. 按 F10 键逐行执行其余代码。

  13. 调试完成后,查询“产品表”以查看其内容。

    SELECT * FROM [dbo].[Products];  
    GO
    
  14. 注意查看结果窗口中表中的新行。