Implement rollback in Nested stored procedure <p>I am using TRY CATCH block to capture error and do rollback</p> <pre><code>ALTER PROCEDURE sp_first /* parameters */ BEGIN TRY BEGIN TRANSACTION /* statements */ COMMIT END TRY BEGIN CATCH IF(@@TRANCOUNT&gt;0) ROLLBACK END CATCH </code></pre> <p>Will the above approach work if there is another stored procedure <code>sp_inner</code> being called inside <code>sp_first</code> which also performs DML statements INSERT , DELETE , UPDATE etc.</p> <pre><code>ALTER PROCEDURE sp_first /* parameters */ BEGIN TRY BEGIN TRANSACTION /* statements of sp_first */ -- stored procedure sp_inner also requires rollback if error occurs. EXEC sp_inner @paramaterList COMMIT END TRY BEGIN CATCH IF(@@TRANCOUNT&gt;0) ROLLBACK END CATCH </code></pre> <p>How to implement roll back if nested stored procedure is used?</p>