SQL SERVER存储过程当中如何使用事务与try catch

1、格式相似于html

 

CREATE PROCEDURE YourProcedure    
AS
BEGIN
    SET NOCOUNT ON;

    BEGIN TRY---------------------开始捕捉异常
       BEIN TRAN------------------开始事务
        UPDATE A SET A.names = B.names FROM 表1 AS A INNER JOIN 表2 AS B ON A.id = B.id

        UPDATE A SET A.names = B.names FROM 表1 AS A INNER JOIN 表2 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

 

 

 

2、捕获错误的经常使用函数sql

 

一、ERROR_NUMBER()  返回错误号。函数

二、ERROR_SEVERITY()  返回严重级别。spa

三、ERROR_STATE()  返回错误状态号。code

四、ERROR_PROCEDURE()  返回出现错误的存储过程或触发器的名称。htm

五、ERROR_LINE()  返回致使错误的行号。对象

六、ERROR_MESSAGE()  返回错误消息的完整文本。该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。事务

 

 

参考资料:SQL SERVER存储过程当中如何使用事务与try catchget

http://www.studyofnet.com/news/1238.htmlclass

相关文章
相关标签/搜索