Debugging stored procedures in SQL Server Management Studio

﹥>﹥吖頭↗ 提交于 2019-12-18 12:44:52

问题


Is there a way to step into the stored procedure code in SQL Server Management Studio? I know this is possible with Visual Studio, but I am looking for a dependable debugging solution from within Management Studio


回答1:


Only with SQL 2008 and SSMS 2008. Select from menu 'Debug\Start Debugging' or press Alt+F5 and will launch the step by step T-SQL debugger.

On 2005 the only way is to attach Profiler and monitor for the SP:StmtCompleted event, which is not exactly debugger step-by-step, but at least you'll see the execution flow. Not to be done on a production machine, obviously.




回答2:


I have written a pretty detailed blog post about it here:

http://www.diaryofaninja.com/blog/2010/11/23/debugging-sql-queries-function-amp-stored-procedures-with-sql-management-studio

Basically the gist of it is that you enter your sql query to execute your stored procedure, and instead of pressing F5 or hitting the exclamation, you hit the play button and use F10 and F11 to step through and step into your stored procs.

This is very handy but no one seems to use it.




回答3:


The ability to debug sprocs, which was in Query Analyzer in SQL Server 2000 was not put into SQL Server 2005. Microsoft realized this mistake and put the functionality back in in SQL Server 2008.

In SSMS 2008 you can start the debugger by either clicking the debug button on the toolbar or pressing ALT+F5.

Unfortunately, running SSMS 2008 against a 2005 database will not allow you to debug, so you'll have to stick with Visual Studio.




回答4:


Watch out for debugging stored procedures using Visual Studio. The way that this is implemented is to use an incredible amount of locking so that you should never do this on a production system.




回答5:


Yes, in SSMS 2008 you can definitely step into T-SQL code (code block, stored func, stored proc) and debug it.

See this excellent article Management Studio Improvements in SQL Server 2008 for details - it also deals with debugging (towards the end of the article).




回答6:


Please be aware when debugging remote instances with SSMS that your server and client firewall will need to allow sqlservr.exe and ssms.exe respectively, along with tcp port 135. The client firewall in my particular case was causing a "timeout expired" when attempting to debug.



来源:https://stackoverflow.com/questions/2016879/debugging-stored-procedures-in-sql-server-management-studio

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!