SQL SERVER中如何确保用户自定义事务的原子性?

0
已邀请:
1

戴俊青 - 微软数据库开发和性能调优 2013-08-05 回答

用户自定义事务的原子性可以用两种方式确保:
1. SET XACT_ABORT
该语句指定SQL SERVER在事务中的语句失败时自动回滚并且放弃整个事务。默认情况下SET XACT_ABORT 为OFF。
2. 显示回滚
在SQL SERVER中的TRY/CATCH错误机制来管理自定义的原子性。
下面是我自己写的一个例子:
begin try
begin tran
begin
select distinct * into #temp_a from temp

truncate table temp

insert into temp
select
id
, product_no
, product_name
from #temp_a

drop table #temp_a
end
print 'success'
commit
end try
begin catch
rollback
print 'error'
end catch
具体的介绍实现错误处理请参照:
http://msdn.microsoft.com/en-us/library/ms179296(v=sql.100).aspx

要回复问题请先登录注册