CREATE TABLE TRAN_ex2(
name VARCHAR(10),
money INT,
CONSTRAINT CK_money CHECK (money >=0)
);
INSERT TRAN_ex2 VALUES('유비', 1000);
INSERT TRAN_ex2 VALUES('장비', 2000);
select * from TRAN_ex2;
--유비가 장비에게 500원을 송금을 했을 때 처리
--BEGIN TRAN
UPDATE TRAN_ex2 set money = money - 500 where name='유비';
--COMMIT TRAN
--BEGIN TRAN
UPDATE TRAN_ex2 set money = money + 500 where name = '장비';
--COMMIT TRAN
BEGIN TRAN
과COMMIT TRAN
과정이 수행되었다.
BEGIN TRAN
UPDATE TRAN_ex2 set money = money - 800 where name='유비';
UPDATE TRAN_ex2 set money = money - 800 where name = '장비';
COMMIT TRAN
유비가 800원을 갖고 있지않아
-800
처리가 안되고 있다.
BEGIN TRY
BEGIN TRAN
UPDATE TRAN_ex2 SET money = money - 500 WHERE name='유비';
UPDATE TRAN_ex2 SET money = money +500 WHERE name = '장비';
COMMIT TRAN
PRINT '장비 계좌에 입급 처리가 되었습니다..!!!'
END TRY
BEGIN CATCH
ROLLBACK TRAN
PRINT '잔액이 부족합니다...!!!!'
END CATCH
위와 같은 상태일때 해당 TRAN을 실행할 시 아래와 같이 출력된다.
강의: ms sql 2014 제대로 배우기 2