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]

  • 相关阅读:
    EF之DataBase添加新字段
    VS 发布MVC网站缺少视图
    解决IE下打印iframe时,页面比例变小的问题
    DataTable求列的最大值、最小值、平均值和样本数
    js的splice和delete
    js获取对象的属性个数
    placeholder
    prompt
    依赖注入
    highcharts离线导出图表
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/2029629.html
Copyright © 2011-2022 走看看