加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer2005的事务处理

发布时间:2020-12-12 15:56:09 所属栏目:MsSql教程 来源:网络整理
导读:??? SqlServer2005 是微软推出的企业级数据库开发平台,它不同于以往的 SqlServer2000, 在功能上, 2005 有了更强大的表现。我们在此来研究一下 2005 的事务处理。 以下的代码是传统的 2000 的事务处理方法: create table demo ( ? sid int primary key, ?

??? SqlServer2005是微软推出的企业级数据库开发平台,它不同于以往的SqlServer2000,在功能上,2005有了更强大的表现。我们在此来研究一下2005的事务处理。

以下的代码是传统的2000的事务处理方法:

create table demo

(

? sid int primary key,

? sname varchar(10)

)

go

?

select * from demo

/*传统的处理方式的不足*/

declare @error int

set @error =? 0

begin tran

? insert? demo values(1,'Tom')

? set @error = @@error + @error

? insert? demo values(1,'Jack')

? set @error = @@error + @error

if @error > 0

? begin

???? print 'Error!'

???? rollback tran

? end

这段代码可以实现事务的原子性功能。但是使用起来不方便。比如,事务处理的操作如果很多的话,每行代码后都会执行? set @error = @@error + @error,用来接收全局错误变量的值。

2005中改变了这种操作,而是采用了开发语言的异常处理机制。具体代码见下:

begin try

? begin tran

??? insert into tDemo values(2,'Jack')

??? insert into tDemo values(2,'Mary')

??? commit tran

end try

begin catch

? declare @i int

? set @i = @@error

? if(@i = 2627)

??? select error_number() as 错误号 ,error_message() as 错误信息

? else

??? select '其他错误!'

? rollback tran

end catch

??? 在上面代码中添加了两个块,trycatch,类似于开发语言中的try{},catch{}。当try块中数据出错时,回自动跳到catch块中接受异常处理,另外,还可以利用error_number()获取错误号和错误信息提示。

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读