微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLServer2005的事务处理

    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()获取错误号和错误信息提示

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐