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
  • 相关阅读:
    Jenkins job 之间实现带参数触发
    svn hooks post-commit钩子自动部署
    Ubuntu PPA软件源
    图片文字OCR识别-tesseract-ocr
    scala 学习笔记十 元组
    scala 学习笔记九 定义操作符
    scala 学习笔记八 简洁性
    scala 学习笔记七 基于类型的模式匹配
    scala 学习笔记六 推导
    scala 学习笔记五 foreach, map, reduce
  • 原文地址:https://www.cnblogs.com/oufeng/p/7093383.html
Copyright © 2011-2022 走看看