트렌젝션

2014.03.17 13:01

소울 조회 수:5444

트렌젝션

 

데이터파일 / 트렌젝션 로그파일

 

데이터파일 -> 객체가 저장됨

트렌젹센 로그 -> dml 구문만 저장 ( insert, update, delete )
select 는 로그에 기록하지 않는다

 전부되거나 / 전부 안되거나 all/nothing 으로 해야함

 

명시적으로 사용가능 ( 트렌젝션 시작하면 lock 걸려서 다른사람이 작업불가) 반드시 commit이나 rollback 해줘야함

 

트렌젝션시작
begin tran

트렌젝션 완료
commit

완료되기전 다시 원복

rollback

 

트렌젝션 카운트

select @@tranCount

 

 

SET IMPLICIT_TRANSACTIONS ON -> commit이 자동으로 들어간다
SET IMPLICIT_TRANSACTIONS OFF -> commit이 자동으로 안들어간다

 

mssql 은 자동커밋임

 

 

rollback 포인트 지정가능


중간롤백
save tran [test]
rollback tran [test]

 

////////////////////////////////////////////////////////////////

 

 

try / catch 트랜젝션 묶음

try 구문이 참이면 그대로 실행되고 오류가 나면 catch 로 가서 그 구분을 실행

ex) 
BEGIN TRY
 BEGIN TRAN 
  UPDATE bankBook SET money = money - 600 WHERE NAME = N'존밴이';
  UPDATE bankBook SET money = money + 600 WHERE NAME = N'당탕이';
 COMMIT TRAN
END TRY
BEGIN CATCH
 ROLLBACK TRAN
END CATCH;