When there are multiple update operations in a stored procedure, an exception occurs in subsequent update operations. If you do not manually roll back the previously modified data, it will not be automatically revoked! BEGINTRYBEGINTRAN--.....COMMITTRANENDTRYBEGINCATCHROLLBACKTRANDECLARE @ ErrorMessagNVARCHAR (255) SELECT @ ErrorMessagE
When there are multiple update operations in a stored procedure, an exception occurs in subsequent update operations. If you do not manually roll back the previously modified data, it will not be automatically revoked! Begin try begin tran --... commit tran end try begin catch rollback tran declare @ ErrorMessag NVARCHAR (255) SELECT @ ErrorMessag = E
When multiple update operations are performed in a stored procedure, the subsequent update operations are abnormal. IfDo not roll back manuallyThe previously modified data will not be automatically revoked!
BEGIN TRY BEGIN TRAN-- ..... COMMIT TRANEND TRYBEGIN CATCH ROLLBACK TRAN DECLARE @ErrorMessag NVARCHAR(255) SELECT @ErrorMessag = Error_message() RAISERROR (15600,-1,-1,@ErrorMessag);END CATCH
Additional reference: http://msdn.microsoft.com/zh-cn/library/ms178592.aspx
BEGIN TRY -- RAISERROR with severity 11-19 will cause execution to -- jump to the CATCH block. RAISERROR ('Error raised in TRY block.', -- Message text. 16, -- Severity. 1 -- State. );END TRYBEGIN CATCH DECLARE @ErrorMessage NVARCHAR(4000); DECLARE @ErrorSeverity INT; DECLARE @ErrorState INT; SELECT @ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(); -- Use RAISERROR inside the CATCH block to return error -- information about the original error that caused -- execution to jump to the CATCH block. RAISERROR (@ErrorMessage, -- Message text. @ErrorSeverity, -- Severity. @ErrorState -- State. );END CATCH;