zoukankan      html  css  js  c++  java
  • Sqlserver 存储过程中结合事务的代码


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

    --方式二
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USP_ProcedureWithTransaction_Demo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[USP_ProcedureWithTransaction_Demo]
    GO
    -- =============================================
    -- Author: <ChengXiaoming>
    -- Create date: <2010-06-11>
    -- Description: <Demo:存储过程中使用事务>
    -- =============================================
    Create PROCEDURE [dbo].[USP_ProcedureWithTransaction_Demo]
    As
    Begin
    Begin Transaction
    Insert Into Lock(LockTypeID) Values('A')--此语句将出错,LockTypeID为Int类型
    Update Lock Set LockTypeID = 1 Where LockID = 32
    Commit Transaction
    If(@@ERROR <> 0)
    Rollback Transaction
    End
    GO

    --方式三
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USP_ProcedureWithTransaction_Demo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[USP_ProcedureWithTransaction_Demo]
    GO
    -- =============================================
    -- Author: <ChengXiaoming>
    -- Create date: <2010-06-11>
    -- Description: <Demo:存储过程中使用事务>
    -- =============================================
    Create PROCEDURE [dbo].[USP_ProcedureWithTransaction_Demo]
    As
    Begin
    Begin Try
    Begin Transaction
    Update Lock Set LockTypeID = 1 Where LockID = 32--此语句将出错,LockTypeID为Int类型
    Insert Into Lock(LockTypeID) Values('A')
    Commit Transaction
    End Try
    Begin Catch
    Rollback Transaction
    End Catch
    End
    GO

    Exec [USP_ProcedureWithTransaction_Demo]

  • 相关阅读:
    enumerate()
    列表
    pycharm下getpass.getpass()卡住
    字符编码
    while_else
    guess_age
    数据类型
    python发展史
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:JSP的基本原理
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Web应用和web.xml文件
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/2029629.html
Copyright © 2011-2022 走看看