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]

  • 相关阅读:
    LeetCode 1110. Delete Nodes And Return Forest
    LeetCode 473. Matchsticks to Square
    LeetCode 886. Possible Bipartition
    LeetCode 737. Sentence Similarity II
    LeetCode 734. Sentence Similarity
    LeetCode 491. Increasing Subsequences
    LeetCode 1020. Number of Enclaves
    LeetCode 531. Lonely Pixel I
    LeetCode 1091. Shortest Path in Binary Matrix
    LeetCode 590. N-ary Tree Postorder Traversal
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/2029629.html
Copyright © 2011-2022 走看看