본문 바로가기

프로그래밍 학습/SQL

[MSSQL] 트랜잭션 사용하기!

728x90



저번시간에 트랜잭션 개념에 대해서 설명했는데 이번에 사용방법에 대해서 설명하겠습니다. 승원,윤화가 있는데 승원이는 700원 윤화는 800원을 가지고 있습니다. 만약 승원이가 800을 보내서 윤화가 800을 받는다면 승원이의 돈은 빠져나가지 않고 윤화는 돈만 1600원이 되는 은행에서는 대형사고인 거죠! 이것을 방지하기 위해 쓰는것입니다. 중요한만큼 설명을 꼼꼼하게 하겠습니다.!!





1.먼저 테이블을 만들어요. 제가 일터특성상 디비 만드는 권한이 없어서 저는 임시테이블로 만들었습니다. 임시테이블도 저번시간에 설명했어요! 먼저 테이블만들때보면 CONSTRAINT K_Done 이라는게보이는데 제약조건을 건다는 뜻입니다. CHECK는 확인한다라는 용도이고 money가 0보다 크거나 같은것을 확인한다는 것입니다. 아니면 오류가 나겠죠! 




2.먼저 트랜잭션 없이 해볼께요. 제약조건 충돌 오류라고 하네요. 오류이지만 문장이 실행이 됩니다.



3.승원이는 700원을 들고있었는데 -800원하니까 실행되지 않고 윤화는 +800원이 실행되었네요. 이것을 방지하기위해 트랜잭션을 사용합니다.


4.헐.. 트랜잭션을 사용해도 제약조건 충돌이라네요.. 이것은 롤백을 시켜주지 않아서 입니다. 오류가 발생되어 실행되지 않았을뿐 롤백이 되지 않았기 때문에 강제적으로 롤백을 해줘야합니다.


5.TRY CATCH 구문이에요! 오류를 잡아주고 강제로 롤백을 시켜줍니다. ! 코딩해보세요!

빨리 이해하고싶으시면 1번과 마지막 5번을 해보세요 .