Transaction Support with Error Handling in SQL-Server
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[TestSP]
@RetValue int OUTPUT
AS
DECLARE @error int
BEGIN
BEGIN TRAN
INSERT INTO ERRORLOG VALUES('TESTING')
INSERT INTO TESTTABLE VALUES(1,2.356)
set @error=@@ERROR
IF @error <> 0 -- Error
BEGIN
SET @RetValue= -2
goto errorlog
END
ELSE
BEGIN
COMMIT TRAN
SET @RetValue = scope_identity()
END
PRINT @RetValue
errorlog:
ROLLBACK TRAN
END
Executing the above First time – Insert one row in both the tables
Executing the above First time – Insert one row in ‘ErrorLog’ table then rollback it as the error occurs while inserting in ‘TestTable’.
Thanks & Regards,
Arun Manglick || Tech Lead
No comments:
Post a Comment