运行 Transact-SQL 调试器
可以在打开数据库引擎查询编辑器窗口后启动 Transact-SQL 调试器。 然后,可在调试模式下运行 Transact-SQL 代码,直到停止调试器。 您可以设置选项以自定义调试器的运行方式。
启动和停止调试器
启动 Transact-SQL 调试器的要求如下:
如果数据库引擎查询编辑器连接到其他计算机上的数据库引擎实例,则必须配置调试器进行远程调试。 有关详细信息,请参阅 配置 Transact-SQL 调试器。
SQL Server Management Studio 必须在作为 sysadmin 固定服务器角色成员的 Windows 帐户下运行。
数据库引擎查询编辑器窗口必须使用 Windows 身份验证来连接,或使用作为 sysadmin 固定服务器角色成员的 SQL Server 身份验证登录名来连接。
“数据库引擎查询编辑器”窗口必须从 SQL Server 2005 Service Pack 2 (SP2) 或更高版本连接到数据库引擎实例。 如果查询编辑器窗口连接到处于单用户模式下的实例,您将无法运行调试器。
我们建议在测试服务器上调试 Transact-SQL 代码,而不要在生产服务器上调试,原因如下:
调试是一项需要高特权的操作。 因此只允许 sysadmin 固定服务器角色成员在 SQL Server 中进行调试。
在调查多个 Transact-SQL 语句的运行时,调试会话通常会运行很长时间。 会话获取的锁(如更新锁)可能会持有很长时间,直到终止会话或者提交或回滚事务。
启动 Transact-SQL 调试器可将查询编辑器窗口置于调试模式。 在查询编辑器窗口进入调试模式时,调试器会在第一个代码行处暂停。 然后,可以单步执行代码,在特定 Transact-SQL 语句上暂停执行,并使用调试器窗口来查看当前执行状态。 可以通过在 “查询” 工具栏上单击 “调试” 按钮,或在 “调试” 菜单上单击 “启动调试” 来启动调试器。
查询编辑器窗口会保持在调试模式下,直到查询编辑器窗口中的最后一个语句完成或您停止调试模式。 可以使用以下任何一种方法来停止调试模式和语句执行:
在 “调试” 菜单中,单击 “停止调试” 。
在 “调试” 工具栏上,单击 “停止调试” 按钮。
在 “查询” 菜单上,单击 “取消执行查询” 。
在 “查询” 工具栏上,单击 “取消执行查询” 按钮。
也可在“调试”菜单上单击“全部分离”,以停止调试模式,但允许剩余的 Transact-SQL 语句完成执行。
控制调试器
可以使用以下命令、工具栏和快捷方式控制 Transact-SQL 调试器的运行方式:
“调试” 菜单和 “调试” 工具栏。 在焦点放到打开的查询编辑器窗口中之前, “调试” 菜单和 “调试” 工具栏处于不活动状态。 它们将保持活动状态,直到关闭当前项目。
调试器键盘快捷键。
查询编辑器快捷菜单。 当右键单击查询编辑器窗口中的某一行时,会显示快捷菜单。 当查询编辑器窗口处于调试模式时,快捷菜单会显示适用于所选的行或字符串的调试器命令。
调试器打开的窗口中的菜单项和上下文命令,例如 “监视” 或 “断点” 。
下表显示了调试器菜单命令、工具栏按钮和键盘快捷键。
调试菜单命令 | 编辑器快捷方式命令 | 工具栏按钮 | 键盘快捷键 | 操作 |
---|---|---|---|---|
窗口/断点 | 不可用 | “断点” | Ctrl+Alt+B | 显示 “断点” 窗口,您可在其中查看和管理断点。 |
窗口/监视/监视1 | 不可用 | 断点/监视/监视1 | CTRL+ALT+W, 1 | 显示 “监视1” 窗口。 |
窗口/监视/监视2 | 不可用 | 断点/监视/监视2 | CTRL+ALT+W, 2 | 显示 “监视2” 窗口。 |
窗口/监视/监视3 | 不可用 | 断点/监视/监视3 | CTRL+ALT+W, 3 | 显示 “监视3” 窗口。 |
窗口/监视/监视4 | 不可用 | 断点/监视/监视4 | Ctrl+Alt+W,4 | 显示 “监视4” 窗口。 |
窗口/局部变量 | 不可用 | 断点/局部变量 | Ctrl+Alt+V,L | 显示 “局部变量” 窗口。 |
窗口/调用堆栈 | 不可用 | 断点/调用堆栈 | Ctrl+Alt+C | 显示 “调用堆栈” 窗口。 |
窗口/线程 | 不可用 | 断点/线程 | Ctrl+Alt+H | 显示 “线程” 窗口。 |
继续 | 不可用 | 继续 | Alt+F5 | 运行到下一个断点。 在将焦点放在处于调试模式的查询编辑器窗口上之前, “继续” 处于不活动状态。 |
“调试” | 不可用 | “调试” | Alt+F5 | 将查询编辑器窗口置于调试模式,并运行到第一个断点。 如果将焦点放在处于调试模式的查询编辑器窗口上,则 “启动调试” 将由 “继续” 替代。 |
全部中断 | 不可用 | 全部中断 | Ctrl+Alt+Break | Transact-SQL 调试器未使用此功能。 |
停止调试 | 不可用 | 停止调试 | Shift+F5 | 使查询编辑器窗口脱离调试模式,并将其恢复到常规模式。 |
菜单上单击 | 不可用 | 不可用 | 不可用 | 停止调试模式,但在查询编辑器窗口中执行剩余的语句。 |
步入 | 不可用 | 步入 | F11 | 运行下一个语句,如果下一个语句运行存储过程、触发器或函数,还将打开处于调试模式的新查询编辑器窗口。 |
步越 | 不可用 | 步越 | F10 | 与 “逐语句” 相同,只不过它不会调试函数、存储过程或触发器。 |
步出 | 不可用 | 步出 | SHIFT+F11 | 执行触发器、函数或存储过程中的剩余代码,而不在任何断点处暂停。 当控件返回到调用该模块的代码时,常规调试模式恢复。 |
不可用 | 运行至光标处 | 不可用 | Ctrl+F10 | 从上次停止位置开始执行所有代码,一直到当前光标位置,在断点处不停止。 |
快速监视 | 快速监视 | 不可用 | Ctrl+Alt+Q | 显示 “快速监视” 窗口。 |
切换断点 | 断点/插入断点 | 不可用 | F9 | 在当前或选定的 Transact-SQL 语句上设置一个断点。 |
不可用 | 断点/删除断点 | 不可用 | 不可用 | 从选定行上删除断点。 |
不可用 | 断点/禁用断点 | 不可用 | 不可用 | 禁用选定行上的断点。 断点在代码行中保留,但不会停止执行,直到重新启用断点。 |
不可用 | 断点/启用断点 | 不可用 | 不可用 | 启用选定行上的断点。 |
删除全部断点 | 不可用 | 不可用 | CTRL+SHIFT+F9 | 删除所有断点。 |
禁用所有断点 | 不可用 | 不可用 | 不可用 | 禁用所有断点。 |
不可用 | 添加监视 | 不可用 | 不可用 | 将选定的表达式添加到 “监视” 窗口中。 |
另请参阅
Transact-SQL 调试器
逐句通过 Transact-SQL 代码
Transact-SQL 调试器信息
数据库引擎查询编辑器 (SQL Server Management Studio)