zoukankan      html  css  js  c++  java
  • 存储过程使用事物的几种方式 转载自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]

  • 相关阅读:
    NOIP2009 靶形数独
    NOIP2014 寻找道路
    NOIP2005 篝火晚会
    NOIP2014 联合权值
    NOIP2011 选择客栈
    luogu2659 美丽的序列
    NOIP2008 传纸条
    vijos1642 班长的任务
    codevs1427 RQNOJ204 特种部队
    AC自动机
  • 原文地址:https://www.cnblogs.com/yzenet/p/2641452.html
Copyright © 2011-2022 走看看