2009-11-24 58 views
35

有没有什么方法可以在SQL Server 2008上调试存储过程?在SQL Server 2008中调试存储过程

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

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

这可能吗?

什么是最好的方法? (在快速查找错误的位置方面)

回答

33

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

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

我一开始就没有考虑到这个功能,因为我没有考虑到步入存储过程,您可以轻松地执行此操作。

SSMS基本上做了FinnNK提到的与MSDN漫游,但自动。

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

编辑︰ 我应该添加一个步骤在那里找到存储过程调用参数我在我的数据库上使用SQL事件探查器。

+0

很棒的东西,在极少数情况下,我通常在应用程序的上下文中调试数据库例程 - 没有意识到您可以直接在SSMS中执行它。 – FinnNk 2009-11-25 08:44:07

+0

还有一个工具可用于在某处调试SQL Server 2008的调试 - 您可以开始记录在录制过程中正在调用的存储过程。我忘了它叫什么;现在可能非常方便。 – 2010-10-07 19:29:07

+2

拯救生命的人! ;) – 2011-11-23 07:16:57

16

是的,你可以(假设你至少有视觉工作室的专业版本),但是一旦你完成了这个工作,它需要一点设置,它与调试没有多大区别码。 MSDN has a basic walkthrough

+2

感谢FinnNk,然而这到永远得走了,再加上我必须有一个项目只允许调试。不是我喜欢的。 – Russell 2009-11-24 23:41:41

4
  • 是,虽然它可以是棘手的调试工作,特别是如果试图调试SQL从自己的开发计算机的远程SQL服务器上。
  • 在第一种情况下,我建议通过在服务器上直接调试,如果可能的话,首先得到这个工作。
  • 使用具有sysadmin权限的帐户登录到SQL服务器,或要求您的DBA执行此操作。
  • 然后,为自己的Windows帐户,创建SQL Server中的 '登录',如果它已不存在:

enter image description here

  • 右键单击该帐户>属性 - 确保该登录名是 '系统管理员' 角色的成员:

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

相关问题