Sql – Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing – SQL server 2005

sqlsql serversql-server-2005tsql

I am getting the error from the application as following with SQL server 2005

"Transaction count after EXECUTE
indicates that a COMMIT or ROLLBACK
TRANSACTION statement is missing.
Previous count = 1, current count =
0"

How can I find the stage where this error is raised?

How can I find the missing transaction or the stored procedure where it is not committed or getting rolled back?

Best Answer

I don't think anything is missing. It's probably an inner stored procedure that gets called from inside a transaction (TRANCOUNT = 1), starts its own transaction (TRANCOUNT = 2) and then rolls it back. Well, it means to roll it back, but rollback affects all transactions and not only the innermost one, so the procedure screws up the execution flow.

A way to find the place depends on available tools/skills. A better way is to use SQL Profiler that shows all commands executed by an application against the server. Find out the outermost stored procedure and go through its code looking for any other procedure calls.