关于SQL SERVER的事务,请教。
两个问题:
1,如下代码:
begin tran
update t1 .....
update t2 .....
update t3 .....
insert into t1 .....
delete from t2 .....
if @@error <> 0
rollback tran
else
commit tran
请教此代码是否能解决当前所有的事务问题,就是说@@error是累积值,还是最后一条SQL 语句的执行结果?
2.如果事务嵌套究竟是哪一层会不生效?
比如:
begin tran
update t1...
update t2..
exec procedure1...
commit tran
其中存储过程procedure1还有一套begin commit这时如果存储过程里有错误,是哪一层不生效?