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]

  • 相关阅读:
    hoj 1061 排列树问题
    [译稿]Google的9条创新原则(转)
    vs2008 Sys未定义比较完整的解决方案
    js右下角升起小窗口脚本示例
    扩展了flash8里array的方法
    js 滚动、切换代码的搜集
    prototype 1.3.1 跟 ajax冲突!!!莫名其妙!
    用AS删除Flash中输入文本开始和结尾的空格【转载】
    Flash右键触发与屏蔽
    实现Flash跨域访问
  • 原文地址:https://www.cnblogs.com/yzenet/p/2641452.html
Copyright © 2011-2022 走看看