昨天被问到sql server中存储过程怎么调试我以前写存储过程,调试方法很笨拙就是逐条执行语句,然后查看结果是不是预期的这种调试方法,实在是无奈之举极大程度地限制了开发速度和准确性。今天在他的提点下研究了下SQL SERVER 2008的存储过程调试。
调试器则必须在两台计算机上使用“Windows 防火墙”控制面板应用程序来启用程序和端口例外。
在运行数据库引擎实例的计算机上在“Windows 防火墙”中指定以下信息:
-
将 TCP 端口 135 添加到例外列表。
-
如果域策略要求通过 IPSec 进行网络通信还必须将 UDP 端口 4500 和 UDP 端口 500 添加到例外列表。
-
将 TCP 端口 135 添加到例外列表
-
-
数据库引擎查询编辑器窗口必须使用 Windows 身份验证来连接,或使用作为 sysadmin 固定服务器角色成员的 SQL Server 身份验证登录名来连接
-
数据库引擎查询编辑器窗口必须连接到 SQL Server 2008数据库引擎的实例。如果查询编辑器窗口连接到处于单用户模式下的实例您将无法运行调试器。
我们建议在测试服务器上调试 Transact-SQL 代码而不要在生产服务器上调试,原因如丅:
-
调试是一项需要高特权的操作因此只允许 sysadmin 固定服务器角色成员在 SQL Server 中进行调试。
-
当您调查多个 Transact-SQL 语句的运行时调试会话通常会运行很長时间。会话获取的锁(如更新锁)可能会持有很长时间直到终止会话或者提交或回滚事务。
启动 Transact-SQL 调试器可将查询编辑器窗口置于调试模式在查询编辑器窗口进入调试模式时,调试器会在第一个代码行处暂停然后,您可以单步执行代码在特定 Transact-SQL 语句上暂停执行,并使鼡调试器窗口来查看当前执行状态可以通过在“查询”工具栏上单击“调试”按钮,或在“调试”菜单上单击“启动调试”来启动调试器
查询编辑器窗口会保持在调试模式下,直到查询编辑器窗口中的最后一个语句完成或您停止调试模式可以使用以下任何一种方法来停止调试模式和语句执行:
-
在“调试”菜单中,单击“停止调试”
-
在“调试”工具栏上,单击“停止调试”按钮
-
在“查询”菜单上,單击“取消执行查询”
-
在“查询”工具栏上,单击“取消执行查询”按钮
也可在“调试”菜单上单击“全部分离”,以停止调试模式但允许剩余的 Transact-SQL 语句完成执行。
-
打开服务器资源管理器添加一个SQL SERVER 2008数据库连接,然后在存储过程节点上点右键选择“单步执行存储过程”,即可进入单步调试状态同上边过程,也要设置权限