• 存储过程使用事物的几种方式 转载自http://www.cnblogs.com/chengxiaoming/archive/2010/06/11/1756163.html


    --方式一
    ifexists (select*from dbo.sysobjects where id =object_id(N'[dbo].[USP_ProcedureWithTransaction_Demo]') andOBJECTPROPERTY(id, N'IsProcedure') =1)
    dropprocedure[dbo].[USP_ProcedureWithTransaction_Demo]
    GO
    -- =============================================
    --
    Author:        <ChengXiaoming>
    --
    Create date: <2010-06-11>
    --
    Description:    <Demo:存储过程中使用事务>
    --
    =============================================
    CreatePROCEDURE[dbo].[USP_ProcedureWithTransaction_Demo]
    As
    Begin
       
    SET XACT_ABORT ON
           
    BeginTransaction
               
    InsertInto Lock(LockTypeID) Values('A')--此语句将出错,LockTypeID为Int类型
                Update Lock Set LockTypeID =2Where LockID =32
           
    CommitTransaction
       
    SET XACT_ABORT OFF
    End
    GO

    --方式二
    ifexists (select*from dbo.sysobjects where id =object_id(N'[dbo].[USP_ProcedureWithTransaction_Demo]') andOBJECTPROPERTY(id, N'IsProcedure') =1)
    dropprocedure[dbo].[USP_ProcedureWithTransaction_Demo]
    GO
    -- =============================================
    --
    Author:        <ChengXiaoming>
    --
    Create date: <2010-06-11>
    --
    Description:    <Demo:存储过程中使用事务>
    --
    =============================================
    CreatePROCEDURE[dbo].[USP_ProcedureWithTransaction_Demo]
    As
    Begin
       
    BeginTransaction
           
    InsertInto Lock(LockTypeID) Values('A')--此语句将出错,LockTypeID为Int类型
            Update Lock Set LockTypeID =1Where LockID =32
       
    CommitTransaction
       
    If(@@ERROR<>0)
           
    RollbackTransaction       
    End
    GO

    --方式三
    ifexists (select*from dbo.sysobjects where id =object_id(N'[dbo].[USP_ProcedureWithTransaction_Demo]') andOBJECTPROPERTY(id, N'IsProcedure') =1)
    dropprocedure[dbo].[USP_ProcedureWithTransaction_Demo]
    GO
    -- =============================================
    --
    Author:        <ChengXiaoming>
    --
    Create date: <2010-06-11>
    --
    Description:    <Demo:存储过程中使用事务>
    --
    =============================================
    CreatePROCEDURE[dbo].[USP_ProcedureWithTransaction_Demo]
    As
    Begin
       
    Begin Try
           
    BeginTransaction
               
    Update Lock Set LockTypeID =1Where LockID =32--此语句将出错,LockTypeID为Int类型
                InsertInto Lock(LockTypeID) Values('A')
           
    CommitTransaction
       
    End Try
       
    Begin Catch
           
    RollbackTransaction   
       
    End Catch   
    End
    GO

    Exec[USP_ProcedureWithTransaction_Demo]

  • 相关阅读:
    WPF程序内存泄漏问题文章推荐
    UAC影响读写文件和注册表
    .NET COM Interop 中的ReleaseComObject使用准则
    读Excel数据并导入到数据库中最快的方法
    DEP问题文章推荐
    深入了解GC文章推荐
    IIS 发布网站
    iis5.1安装方法(适用于XP),IIS5.0安装包下载、IIS5.1安装包下载、IIS6.0安装包下载
    单击GridView的某一行 根据此行id得到这行的所有信息
    asp.net背景图片自动适应屏幕大小
  • 原文地址:https://www.cnblogs.com/yzenet/p/2641452.html
Copyright © 2020-2023  润新知