zoukankan      html  css  js  c++  java
  • SQL事务在存储过程的应用

    -- =============================================
    -- Author:        jf_ou
    -- Create date: 2017-08-22
    -- Description:    事务的使用1
    -- =============================================
    CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName> 
    AS
    BEGIN
        --设置整体提交或整体回滚BEGIN
        SET XACT_ABORT ON
        DECLARE @ERROR INT = 0;
        BEGIN TRANSACTION
            IF(@ERROR = 1)
            BEGIN
                SELECT 'ERROR';
                --ROLLBACK后面必须加RETURN;且ROLLBACK必须在前面
                ROLLBACK TRANSACTION
                RETURN
            END
            ELSE
            BEGIN
                SELECT 'DOME'
            END
        IF(@@ERROR <> 0) 
        BEGIN
            ROLLBACK TRANSACTION
        END 
        COMMIT TRANSACTION
    
        --设置整体提交或整体回滚END
        SET XACT_ABORT OFF
    END
    GO
    -- =============================================
    -- Author:        jf_ou
    -- Create date: 2017-06-19
    -- Description:    事务的使用2
    -- =============================================
    CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName> 
        <@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>, 
        <@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
    AS
    BEGIN
        --设置整体提交或整体回滚BEGIN
        SET XACT_ABORT ON
    
        DECLARE @ERROR INT = 0;
        BEGIN TRY
            BEGIN TRANSACTION 
            --核心代码
            IF(@ERROR = 1)
            BEGIN
                SELECT 'ERROR';
                --ROLLBACK后面必须加RETURN;且ROLLBACK必须在前面
                ROLLBACK TRANSACTION
                RETURN
            END
            ELSE
            BEGIN
                SELECT 'DOME'
            END
            COMMIT TRANSACTION 
        END TRY 
        BEGIN CATCH
            Rollback TRANSACTION 
            --插入轨迹语句
        END CATCH
        
        --设置整体提交或整体回滚END
        SET XACT_ABORT OFF
    END
    GO
  • 相关阅读:
    td-agent 收集日志到kafka的配置
    ctrl+z 以后怎么恢复挂起的进程
    LCD显示GPS时钟[嵌入式系统]
    树莓派轮盘游戏机[嵌入式系统]
    集成测试工具
    未上线的界面
    前端网页内复杂编辑
    用jquery编写的分页插件
    用jquery编写的tab插件
    EAA脚本语言0.2
  • 原文地址:https://www.cnblogs.com/oufeng/p/7093383.html
Copyright © 2011-2022 走看看