美文网首页
SQL-事务

SQL-事务

作者: YANG_LIVE | 来源:发表于2022-01-20 16:08 被阅读0次
IF EXISTS ( SELECT TOP ( 1 ) * FROM #Tpmet )
    BEGIN
        BEGIN TRANSACTION;      -- 开启事务
        DECLARE @ErrorNo INT;   -- 定义变量,用于记录事务执行过程中的错误次数
        SET @ErrorNo = 0;
        BEGIN TRY

            /*
            业务逻辑 
            @@ERROR 是错误信息标记
            */
            
            SET @ErrorNo = @ErrorNo + @@ERROR;
            IF ( @ErrorNo > 0 )
                BEGIN
                --抛出自定义的异常,在最后的catch块中统一处理异常
                    RAISERROR(233333,16,3);
                END;
        END TRY

        BEGIN CATCH
            SELECT  ERROR_NUMBER() errorNumber ,        --错误代码
                    ERROR_SEVERITY() errorSeverity ,    --错误严重级别,级别小于10 try catch 捕获不到
                    ERROR_STATE() errorState ,          --错误状态码
                    ERROR_PROCEDURE() errorProcedure ,  --出现错误的存储过程或触发器的名称
                    ERROR_LINE() errorLine ,            --发生错误的行号
                    ERROR_MESSAGE() errorMessage;       --错误的具体信息

            IF ( @@trancount > 0 )                      -- @@trancounz 系统全局变量,事务开启 @@trancount 值+1,判断事务是否开启
                BEGIN
                    ROLLBACK TRANSACTION;               -- 回滚事务
                END;
        END CATCH;

        IF ( @@trancount > 0 )
            BEGIN
                COMMIT TRANSACTION;        -- 提交事务
            END;    
    END;

相关文章

  • SQL-事务

    多用户数据库:数据库系统可以允许多个用户查询或者修改数据。如果每个人都只执行查询操作,则数据库服务器可以正常工作。...

  • SQL-事务

  • 一、数据库之SQL语句

    一、SQL创表 二、SQL-插入 三、SQL-修改 四、SQL-删除 五、SQL-查询 以上是SQL语句常用的用法...

  • sql

    sql-基础sql-基础查询-1sql-基础查询-2sql-更新 概览 数据库(Database,DB):将大量数...

  • sql-将日期转换为YYYYMM格式 几种方式

    sql-将日期转换为YYYYMM格式SELECT CONVERT(nvarchar(6), GETDATE(), ...

  • oracle 常用查询语言

    SQL- Data Query Language 1. select 2. where 3. distinct 4...

  • Ubuntu下mysql的常用命令,MySQL数据库的基本操作命

    一、mysql服务操作 0.0 进入mysql $mysql -uroot -p 0、查看数据库版本 sql-> ...

  • mybatis动态SQL

    动态 SQL-参考链接有兴趣深究的可以去查看mybatis-3-mapper.dtd这个文件。http://myb...

  • SQL-本年

    select dateadd(qq, datediff(qq,0,getdate()), 0) select DA...

  • sql-留存

    --sumdate--返回结果的注册日期 --REGDATE--子表注册日期 --LOGINDATE--次日登陆日...

网友评论

      本文标题:SQL-事务

      本文链接:https://www.haomeiwen.com/subject/itijhrtx.html