하나의 저장프로시저에 여러개의 업데이트 문과 인서트문이 있습니다.
예를 들어서
create proc testInsert
as
begin tran
insert ......1
insert ......2
update ......3
update ......4
insert ......5
if @@error > 0
rollback tran
else
commit tran
이렇게 프로시저를 만들었습니다.
그런데, 4번에서 만약 에러가 났다면 1,2번의 인서트문과 3번의 업데이트문이 롤백이 되야 되는거 아닌가요?
4번에서 에러가 나도 3번까지는 실행이 되버려서 트랜잭션의 의미가 없어져 버립니다.
작성문이 잘 못 된건가요?
프로시저내 트랜잭션처리에 대해서 답변 좀 부탁드리겠습니다. |