0
点赞
收藏
分享

微信扫一扫

SqlServer 存储过程事务与异常书写顺序

ivy吖 2022-04-13 阅读 36
sql数据库

try可以从头开始包到结束,防止入参的时候就会报错。

事务tran则从业务的地方才开始进行。防止过多的查询等操作。造成事务繁多,从而死锁

CREATE PROCEDURE ProcedureName(@xml xml)
AS
BEGIN
    SET NOCOUNT ON;
    BEGIN TRY---------------------开始捕捉异常

 @CS1   INT  

Select      @CS1= @xml.value('(//CS1)[1]','INT')

       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

举报

相关推荐

0 条评论