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

    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] 
  • 相关阅读:
    弹出窗口的几种方法
    FCKeditor2.2+ASP.NET2.0不完全攻略
    如何运用 Form 表单认证 ?
    DataGrid的多种格式化显示方法
    如何显示在线人数,和所在位置?? [转自作者:子扬]
    备份和恢复Active Directory
    如何在vs.net里调试脚本 《一》
    初学ASP.Net时一些备忘的东西
    ASP.NET在线用户列表精确版——解决用户意外退出在线列表无法及时更新问题
    小技巧(一)分离字符串string str="(1,10,100,1000,10000,)";
  • 原文地址:https://www.cnblogs.com/wuxiang/p/3668620.html
Copyright © 2011-2022 走看看