FIX: SQL Breakpoint Not Hit After Executing SP in Another DB (165420)



The information in this article applies to:

  • Microsoft Visual C++, 32-bit Enterprise Edition 5.0

This article was previously published under Q165420

SYMPTOMS

The SQL Debugger may fail to stop at breakpoints that are set after a call to a stored procedure from a database (other than the current one) is executed.

CAUSE

The call to the stored procedure in the secondary database changes the context of SQL Server to that database.

The SQL Debugger cannot find breakpoints that were set in the context of the previous database and fails to break on them.

RESOLUTION

Work around this by placing a call to a stored procedure that resides in the same database as the stored procedure you were initially debugging.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This problem was corrected in Visual C++ version 6.0 for Windows.

REFERENCES

Sample Code

   /* Sample SP which shows the problem */ 
   Create Procedure sp_MySP
   As
   SELECT * FROM employee

   /* Breakpoints set after this call will not be hit */ 
   EXEC OtherDB.dbo.sp_SomeSP

   SELECT * FROM Authors

   RETURN (0)

   -----------
   /* Sample SP with a workaround */ 
   /* Add one line of code */ 

   Create Procedure sp_MySP
   As
   SELECT * FROM EMPLOYEE

   EXEC OtherDB.dbo.sp_SomeSP

   /* This causes the database context to be changed back to original */ 
   /* Breakpoints will now be hit */ 
   EXEC sp_MySP2

   SELECT * FROM Authors

   RETURN (0)

   /* Stored procedure called from above */ 

   Create Procedure sp_MySP2
   As
   RETURN (0) 

Modification Type:MajorLast Reviewed:10/15/2002
Keywords:kbBug kbcode kbDebug kbEEdition kbProgramming kbVC600fix KB165420 kbAudDeveloper