Sqlserver 存储过程中结合事务的代码

感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!

代码如下:

 
--方式一 
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] 

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...