BEGIN TRY
BEGIN TRAN
-- 事物语句
IF XACT_STATE() = 1
BEGIN
COMMIT TRAN ;
END
ELSE
BEGIN
ROLLBACK TRAN ;
END
END TRY
BEGIN CATCH
IF XACT_STATE() <> 0
ROLLBACK TRAN ;
SELECT ERROR_NUMBER() AS ErrorNumber ,
ERROR_SEVERITY() AS ErrorSeverity ,
ERROR_STATE() AS ErrorState ,
ERROR_PROCEDURE() AS ErrorProcedure ,
ERROR_LINE() AS ErrorLine ,
ERROR_MESSAGE() AS ErrorMessage ;
END CATCH ;
GO