Calling Stored Procedures from Transactions

Stored procedures can be called from within a transaction, and they can also initiate transactions. SQL Server notes the transaction nesting level, which is available from the @@trancount function, before calling a stored procedure. If the value of @@trancount when the procedure returns is different from the value of @@trancount when it was executed, SQL Server displays the following error message

Msg 266, Level 16, State 2, Procedure p1, Line 0Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMITstatements. Previous count = 0, current count = 1.

This message indicates that transaction nesting is out of balance. Because a stored procedure does ...

Get Microsoft® SQL Server 2012 Unleashed now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.