演练:调试 Transact-SQL 存储过程

本主题适用于:

Visual Studio 旗舰版

Visual Studio 高级专业版

Visual Studio 专业版

Visual Studio 速成版

yet1b7by.DoesApplybmp(zh-cn,VS.100).gif yet1b7by.DoesApplybmp(zh-cn,VS.100).gif yet1b7by.DoesApplybmp(zh-cn,VS.100).gif yet1b7by.DoesNotApplybmp(zh-cn,VS.100).gif

本示例演示如何通过直接数据库调试(即使用资源管理器单步执行存储过程)创建和调试 Transact-SQL 存储过程。此外,它还阐释了不同的调试技术(如设置断点、查看数据项等)。

提示

显示的对话框和菜单命令可能会与帮助中的描述不同,具体取决于您现用的设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio Settings

调试 Transact-SQL 存储过程

  1. 在新的 SQL Server 项目中,建立一个到 AdventureWorks2008 示例数据库的连接。有关更多信息,请参见如何:使用服务器资源管理器连接到数据库

  2. 使用下面第一个示例部分中的代码创建一个新的存储过程,并将其命名为 HelloWorld。有关更多信息,请参见如何:使用 SQL Server 数据库项目或服务器项目进行调试

  3. 在 HelloWorld 中设置断点,并单步执行存储过程。有关更多信息,请参见如何:使用服务器资源管理器单步执行对象。以黄色箭头指定的指令指针将出现在 SET @mynvarchar = @@VERSION 行,该行是存储过程中代码的第一个可执行行。

  4. 尝试不同的调试功能。

    1. 使**“局部变量”窗口可见。为此,请在“调试”菜单中,单击“窗口”,再单击“局部变量”。请注意,参数和局部变量以及它们的对应值显示在“局部变量”窗口中。可以在存储过程运行时在“局部变量”**窗口中编辑变量的值。有关更多信息,请参见How to: Use Debugger Variable Windows

      注意   服务器可能不会在调试器窗口中反映对变量值的更改。有关更多信息,请参见 SQL 调试限制

    2. 按 F10 执行存储过程中的一行。注意,**“局部变量”**窗口中的变量 @mynvarchar 的值已经更改,并且它的值现在显示为红色,表示它已经更改。

    3. 使**“监视”窗口可见。为此,请在“调试”菜单中,单击“窗口”,再选择“监视”**。有关更多信息,请参见How to: Use Debugger Variable Windows

    4. 在文本编辑器中,双击 @mynvarchar 变量以选择它。将 @mynvarchar 拖到**“监视”**窗口上的任意位置。该变量随即添加到受监视的变量列表中。

      注意   也可以在**“监视”**窗口中编辑变量的值。

    5. 在文本编辑器中,右键单击 Return (0) 行,并在快捷菜单上单击**“插入断点”**。

    6. 在**“调试”菜单上单击“继续”**。

  5. 再次选择**“继续”**完成调试存储过程。

    注意 您可以在 AdventureWorks2008 数据库中单步执行任何存储过程,AdventureWorks2008 数据库显示在与之关联的**“存储过程”**节点下。

示例

这是存储过程的代码。

CREATE PROCEDURE HelloWorld
AS
    DECLARE @mynvarchar NVARCHAR(50),
            @myfloat FLOAT
    SET @mynvarchar  = @@VERSION
    SET @mynvarchar  = 'Hello, world!'
    SET @myfloat     = 1.6180
    PRINT @mynvarchar
    RETURN (0)

请参阅

概念

调试 Transact-SQL

其他资源

Server Explorer/Database Explorer