Sqlserver 存储过程中结合事务的代码
Sqlserver 存储过程中结合事务的代码
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:--方式一ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[d...

复制代码 代码如下:

--方式一

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]

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新mssql数据库学习
热门mssql数据库学习
编程开发子分类