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]

  • 相关阅读:
    高可用-mysql安装,双主模式+keepalived
    源码-mybatis-01-SqlSessionFactory创建
    J.U.C-volatile
    设计模式-模板设计模式(行为)
    设计模式-代理模式
    线程-join();
    Net Core 文件的上传下载
    mysql 开启日志记录执行SQL语句
    C# 方法多个返回值
    C# get set 方法 设置默认值
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/2029629.html
Copyright © 2011-2022 走看看