SQL SERVER存储过程中使用事务
                        
                            时间:2021-07-01 10:21:17
                            帮助过:4人阅读
							                        
                     
                    
                    
                     PROCEDURE YourProcedure    
AS
BEGIN
    SET NOCOUNT 
ON;
    BEGIN TRY
---------------------开始捕捉异常
       BEIN 
TRAN------------------开始事务
        UPDATE A 
SET A.names 
= B.names 
FROM T1 
AS A 
INNER JOIN T2 
AS B 
ON A.id 
= B.id
        UPDATE A 
SET A.names 
= B.names 
FROM T1 
AS A 
INNER JOIN T2 
AS B 
ON A.TEST 
= B.TEST
    COMMIT TRAN -------提交事务
    END TRY
-----------结束捕捉异常
    BEGIN CATCH
------------有异常被捕获
        IF @@TRANCOUNT > 0---------------判断有没有事务
        BEGIN
            ROLLBACK TRAN----------回滚事务
        END 
        EXEC YourLogErrorProcedure
-----------记录存储过程执行时的错误信息,自定义
    END CATCH
--------结束异常处理
END
二、捕获错误的常用函数 
1、ERROR_NUMBER()  返回错误号。
2、ERROR_SEVERITY()  返回严重级别。
3、ERROR_STATE()  返回错误状态号。
4、ERROR_PROCEDURE()  返回出现错误的存储过程或触发器的名称。
5、ERROR_LINE()  返回导致错误的行号。
6、ERROR_MESSAGE()  返回错误消息的完整文本。该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。
SQL SERVER存储过程中使用事务
标签:异常处理   导致   name   触发器   server   回滚事务   set   自定义   mit