--示例语句
create table #temp (id int identity(1, 1), value int)
go
begin tran
insert into #temp(value) values(100)
insert into #temp(value) values(convert(int, 'abc')) --SET XACT_ABORT的设置无法处理这种错误
commit tran
insert into #temp(value) values(100)
insert into #temp(value) values(convert(int, 'abc')) --SET XACT_ABORT的设置无法处理这种错误
commit tran
go
--如果没有这句,则sql执行在这里已因异常而退出,下面处理@@error 的语句将无法发生
if (@@error <> 0)
print 'error'
print 'error'
另:SET XACT_ABORT 方法可以处理的是类似于外键错误的情况,而无法处理了似于上面标注出来的那个错误,详情参照SQL SERVER联机文档的相关说明。