DECLARE c_cursor INSENSITIVE CURSOR
~~~
FOR READ ONLY
OPEN c_cursor
FETCH NEXT FROM c_cursor INTO ~~
WHILE
BEGIN TRAN
~~
IF @@ERROR <> 0
ROLLBACK TRAN
ELSE
COMMIT TRAN
~~
FETCH NEXT FROM c_cursor INTO ~~
END
1. 위와 같이 FETCH 문 내에서 TRANSATION을 사용하고 있습니다만.. 아무리 생각해도 이상한거 같습니다. 이런식으로 사용해도 무관한지 궁금하여 질문드립니다.
2. 그리고 혹시 위의 TRANS문 내에서 오류가 발생하면 바로 ROLLBACK하고 FETCH문을 빠져나오는지 아니면 해당행만 롤백하고 다음행을 처리하는지도 궁금해서요.
전임이 이러한 코드를 작성해놓고 그만둔터라 저도 잘 모르겠네요. 알수없는 오류가 있어서 이 새벽에도 잠을 못자고 있습니다. ㅠㅠ 도와주세요 |