sql server 异常捕获和事务处理

 如下是通过一个存储过程实现异常捕获以及事务处理的一段t-sql:
ALTER proc [dbo].[Proc_BMIS_Target_Month_FormatData]
as
BEGIN
SET NOCOUNT ON
--此行设置此操作使用事务
SET XACT_ABORT ON
--开始事务
BEGIN TRANSACTION
--捕获异常
BEGIN TRY
       /*存储过程代码*/
       ...
       --提交事务
  COMMIT TRANSACTION
END TRY
BEGIN CATCH
       /*在此将错误信息记录到日志表*/
        INSERT INTO .dbo.ErrorLog--
        SELECT '处理***存储过程时出现异常',
        ERROR_MESSAGE() AS ErrorMessage,
        GETDATE() AS NowTime
       --回滚事务
  ROLLBACK TRANSACTION
END CATCH
END

 --结合TRAN使用,详细参考:

-- 01. https://blog.csdn.net/hzp666/article/details/79627527

-- 02. https://learn.microsoft.com/zh-cn/sql/t-sql/statements/set-xact-abort-transact-sql?view=sql-server-ver16

posted @ 2010-12-06 10:28  【舍予】  阅读(655)  评论(0编辑  收藏  举报