안녕하세요 이제 막 개발 공부를 시작하고 있습니다ㅠㅠ
이것저것 혼자서 공부하면서 테스트삼아 만들어보고 있는 프로시져입니다
저는 나름대로 문법 상 맞다고 넣었는데 왜 자꾸 BEGIN에서 에러가 나는지 모르겠어요ㅠㅠ
혹시 이유를 알고 계시는 고수님들이 계실까요?ㅠㅠ 계신다면 도움 부탁드리겠습니다...!
Comment 3
-
윤군놀자
2022.09.21 16:46
cmd_comment_vote_user Upvote0 Downvote0 Comment Update Delete
-
지영아빠
2022.09.21 18:03
insert, update의 적용을 rowcount로 체크한 셈이네요.
block이 조금 보기 힘들게 되어 있네요
말씀대로 괄호가 하나 빠졌습니다.
또 rollback tran은 begin tran을 선언하시고 쓰야 할 것 같구요.
여기서는 insert, update 둘중 하나의 구문에서 에러나면 rollback 할 부분도 없을 것 같습니다.
-
aaa
2022.09.22 20:37
try catch 에서 throw 를 이용한 에러처리를 하시는게 좀 더 우아해 보일듯 합니다.
cmd_comment_vote_user Upvote0 Downvote0 Comment Update Delete
IF NOT EXISTS 에서 괄호 열고 WITH(NOLOCK) 하고 괄호를 하나 닫아야 겠죠? 그래서 BEGIN에서 문법 에러 나는거고요.
중간에 ELSE BEGIN 하고 WHERE MEMO = @pi_intMemNo 하고 END로 닫으면 그 밑에 로직인 IF @@ROWCOUNT <> 1 이거 체크가 안되요.
따라치더라도 천천히 생각해 보시고 띄어쓰기를 본인한테 맞게 잘 정리해 보세요.