2014-04-11 1 views
0

sybase isql을 작업하고 있습니다. 모든 업데이트가 성공했거나 연마 된 것과 같은 업데이트 구문이 있습니다. 이를 위해 sybase의 atomic 함수를 사용하여 실행하려고합니다. 그러나 '근처의 구문이 잘못되었습니다'원자 ','말 '로 오류를 보이고있다.원자 키워드를 사용하여 커밋 및 롤백

begin atomic 
update abc 
set def = q 
update xyz 
set xyz = p 
end 

isql을 키워드로 원자 표시되지 ASE. 사이베이스는 원자 키워드를 지원하지 않습니다합니까?

답변

1

을 솔루션의 경우 당신은

begin tran atomic 
update abc 
set def = q 

if @@error <> 0 
rollback tran atomic 

update xyz 
set xyz = p 

if @@error <> 0 
rollback tran atomic 

commit tran atomic 

당신은 말없이 트랜잭션을 사용하여 다음과 같이 트랜잭션을 사용한다 Atomic 안녕하세요, 감사 당신의 대답. 그러나 여기 내가 문의 원자 블록에 대해 질문하고

+0

sybase. 위의 명령문이 작동하지 않으면 남아있는 모든 갱신 명령문이 롤백되어야한다는 조건이 있습니다. – 10hero

+0

@ 10hero 위 코드는 원하는 것을 수행합니다. 명령문 중 하나가 작동하지 않으면 모든 변경 사항이 롤백됩니다. – Parado

관련 문제