Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 1, current count = 0.
CREATE Procedure [dbo].[My_Main_PROC] @RequestId UNIQUEIDENTIFIER, @DOCUMENT XML AS */ BEGIN SET NOCOUNT ON; DECLARE @transtate BIT IF @@TRANCOUNT = 0 BEGIN SET @transtate = 1 BEGIN TRANSACTION transtate END BEGIN TRY ...... ...... EXEC [dbo].[PROC_FirstNestedPRoc] ; ...... ...... EXEC [dbo].[PROC_SecondNEstedProc] ; ...... ...... EXEC [dbo].[PROC_ThirdNestedPRoc] ; .... ..... IF @transtate = 1 AND XACT_STATE() = 1 COMMIT TRANSACTION transtate END TRY BEGIN CATCH DECLARE @Error_Message VARCHAR(5000) DECLARE @Error_Severity INT DECLARE @Error_State INT SELECT @Error_Message = ERROR_MESSAGE() SELECT @Error_Severity = ERROR_SEVERITY() SELECT @Error_State = ERROR_STATE() IF @transtate = 1 AND XACT_STATE() <> 0 ROLLBACK TRANSACTION RAISERROR (@Error_Message, @Error_Severity, @Error_State) END CATCH END
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)