SQL事务用法begin tran,commit tran和rollback tran的用法

具体用法如下:


复制代码 代码如下:

— =============================================

— author: cynimoon

— create date: 2009-10-09

— description: 示例存储过程

— =============================================

— exec test_proc ‘文综’,’包括历史,地理,政治’,’政治’,’文综的一门’

create procedure [dbo].[test_proc]

@a_name nvarchar(20), — a表姓名

@a_remark nvarchar(4000), — a表备注

@b_name nvarchar(20), — b表姓名

@b_remark nvarchar(4000) — b表备注

as

begin try

begin tran

— 在a表中插入数据

insert into [dbo].[a]

( [a_name]

, [a_remark] )

values

( @a_name

, @a_remark )

— 在b表中插入数据

insert into [dbo].[b]

( [a_id]

, [b_name]

, [b_remark] )

values

( @@identity — 返回最后插入的标识值

, @b_name

, @b_remark )

commit tran

end try

begin catch

rollback tran

insert into [dbo].[errorlog]

( [el_procedure] — 异常存储过程名称

, [el_operatetime] ) — 报异常时间

values

( ‘test_proc’

, convert(datetime,getdate(),20) )

end catch

注:1. @@identity的作用是返回最后插入的标识值。

2. 我在rollback tran中加入一个专门记录异常的表,以便产于异常发生的时间和确定报异常的存储过程的名称。

原文链接:

begin tran 可以理解成新建一个还原点。

commit tran提交这个自begin tran开始的修改

rollback tran 表示还原到上个还原点。

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐