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