@@error与@@ROWCOUNT一样,会在每一条语句执行后被清除并且重置,
看几个例子:
insert into tt values('4')
print @@error
print @@rowcount
上面的@@rowcount是检测不出insert语句的影响行数的,它是检测上一条语句print @@error的影响行数
insert into tt values('4')
print @@rowcount
print @@error
上面的@@error同样不能检测insert语句是否出错,它只能检测上一条语句 print @@rowcount 是否出错
为了同时检测insert语句的影响行数和是否出错,则需要用:
declare @rows as int
declare @err as int
insert into tt values('4')
select @rows=@@rowcount,@err=@@error
print @rows
print @err