반응형

7.3 ASIQ에서의 Transaction Mode

 

7.3.1 ‘Auto_Commit’ & ‘Chained’ Option 따른 변화

 

Auto_commit

Chained

    

On

On

Begin

 Insert aa values('A1');

 Insert ab values('A1');   ß Error발생

End

=> Query 두번째 Insert문장의 Error발생으로 ‘Begin

~End’ 사이의 모든 내용이 자동적으로 rollback된다.

Off

On

Begin

 Insert aa values('A1');

 Insert ab values('A1');   ß Error발생

End

/* Rollback; */

=> Query 두번째 Insert문장에서 Error 발생했으나  첫번째 Insert Insert 되어버린다, 뒤에 Rollback

실행하여 Rollback 있다.

On  , Off

Off

Begin

 Insert aa values('A1');

 Insert ab values('A1');   ß Error발생

End

/* Rollback; */

=> Query수행 결과는 ‘Chained=’Off’’ 의해 첫번째 insert 문은 정상적으로 수행한다. 경우 ‘Begin~End’뒤에 Rollback 첫번째 Insert

 rollback하지 못한다.

Off

On

(Begin ~ End 없는 경우)

Update TEST set a = 2 ,b = 21  WHERE a = 1 ;

Rollback ;

 

=> 위의 결과는 rollback 작용해 Update 안된다.

이유는 Update 실행되고 Auto_commit ‘Off’

의해Commit 없이 Rollback 실행된다.

On

On

(Begin ~ End 없는 경우)

Update TEST set a = 2 ,b = 21  WHERE a = 1 ;

Rollback ;

 

=> 위의 결과는 Update 이미 ‘Commit’되어 완료된

상태이므로 rollback 무의미 해진다.

On  , Off

Off

(Begin ~ End 없는 경우)

Update TEST set a = 2 ,b = 21  WHERE a = 1 ;

Rollback ;

 

=> Query수행 결과는 ‘Rollback’ 문장이 있지만

Update 수행된다. Chained mode ‘Off’ 이므로

Begin~End 내에 있는 문장이 개별로 처리됨

.




출처 : sybase

+ Recent posts