在SQL Server 2008中调试存储过程

时间:2009-11-24 23:14:57

标签: sql-server sql-server-2008 debugging

有没有办法在SQL Server 2008上调试存储过程?

我有权使用SQL Server Management Studio 2008和Visual Studio 2008(不确定是否提供此功能)。

通常我使用SQL分析器来查找传递给存储过程的参数,但是希望能够逐步完成该过程以查看失败的位置。

这可能吗?

最好的方法是什么? (就快速找到错误的位置而言)

5 个答案:

答案 0 :(得分:33)

答案就是一直坐在我面前。

在SQL Server Management Studio 2008中,工具栏中有一个“调试”按钮。在查询窗口中设置断点以逐步执行。

我在开始时就驳回了这个功能,因为我没想到踩到INTO存储过程,你可以轻松地做到这一点。

SSMS基本上做了FinnNK提到的MSDN演练,但是自动完成。

太容易了!感谢您的帮助FinnNK。

编辑: 我应该在那里添加一个步骤,以便在我的数据库中使用SQL Profiler的参数找到存储过程调用。

答案 1 :(得分:16)

是的,你可以(假设你至少拥有可视工作室的专业版),虽然它需要稍微设置一旦你完成它,它与调试代码没有多大区别。 MSDN has a basic walkthrough

答案 2 :(得分:4)

  • 是的,虽然调试工作可能很棘手,尤其是尝试从您自己的开发机器上调试远程SQL服务器上的SQL时。
  • 在第一种情况下,我建议首先直接在服务器上进行调试,如果可能的话。
  • 使用具有sysadmin权限的帐户登录SQL Server,或让您的DBA执行此操作。
  • 然后,对于您自己的Windows帐户,创建一个“登录”'在SQL Server中,如果它不在那里:

enter image description here

  • 右键点击帐户> properties - 确保登录是' sysadmin'的成员。作用:

enter image description here

  • (同时确保该帐户是您要调试脚本(例如存储过程)的所有数据库的所有者:

enter image description here

  • 然后,使用您的Windows帐户直接登录到SQL服务器。
  • 使用Windows身份验证登录SQL服务器(使用您刚刚用于登录服务器的帐户)
  • 现在'调试' SQL管理工作室中的查询,根据需要设置断点。您可以使用F11进入存储过程:

enter image description here

  • 这是一个有用的调试指南:

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-1.aspx

  • 如果您需要远程调试,那么一旦您使用此部件,您可以尝试设置远程调试:

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-2.aspx

答案 3 :(得分:0)

远程调试的一个要求是用于运行SSMS的Windows帐户是sysadmin角色的一部分。请参阅此MSDN链接:http://msdn.microsoft.com/en-us/library/cc646024%28v=sql.105%29.aspx

答案 4 :(得分:0)

MSDN提供了调试存储过程的简便方法。请检查此链接 -
How to: Debug Stored Procedures