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]

  • 相关阅读:
    路由器漏洞调试的一些技巧
    路由器漏洞挖掘利用的一些基础知识
    windows 利用环境变量%PATH%中目录可写提权

    python super原理,不是指父类
    regexp盲注的一些改进
    阿里规范
    阿里规范
    工具类
    Timer 使用 (一)
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/2029629.html
Copyright © 2011-2022 走看看