views:

789

answers:

4

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

+1  A: 

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.

Remus Rusanu
I get the error "Failed to start debugger" The EXECUTE permission was denied on the object 'sp_enable_sql_debug' .. on SSMS 2008
>> To debug on SQL Server 2005, both the account running Visual Studio and the account used to connect to SQL Server must be members of the sysadmin role. http://msdn.microsoft.com/en-us/library/ms241735(VS.80).aspx
Remus Rusanu
And it never occurred to them that people who aren't sys admins might need to debug sps?
HLGEM
@HLGEM: debugging is somethign you do on the dev box, not on production. Besides, there are very stong reasons for this: anyone with debug priviledges is a de facto admin of the box, simply by means of the power invested in what debuggers can do. So requiring you to be sysadmin is simply aknwoledging a fact and closing a possible priviledge escalation path.
Remus Rusanu
+1  A: 

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.

Nick Kavadias
+1  A: 

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.

Rob Farley
+2  A: 

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).

marc_s
I get the error "Failed to start debugger" The EXECUTE permission was denied on the object 'sp_enable_sql_debug' ..