2016-07-22 3 views
0

SQL을 사용하여 웹 서비스를 만들었습니다. 한 가지 방법은 한 번에 세 개의 테이블에 삽입하는 것입니다. 나는 오류 처리를하고 싶다. 첫 번째 쿼리가 성공적으로 실행되고 두 번째 쿼리가 실행되지 않으면. 따라서 실행 된 첫 번째 쿼리는 취소되고 세 번째 쿼리는 실행되지 않습니다. 롤백을 사용하면 웹 서비스를 사용하고 있다는 것을 고려할 때 다른 요청에 영향을 미칠 수 있습니다. 그래서 롤백없이 실행 된 SQL 쿼리를 취소 할 수있는 방법이 있습니까?롤백없이 실행 된 SQL 쿼리를 취소하는 방법

+0

[트랜잭션] (https://technet.microsoft.com/en-us/library/ms190612(v=sql.105) .aspx)에서 쿼리를 래핑하십시오. 지정한 쿼리 만 커밋하거나 롤백하도록 선택할 수 있습니다. –

답변

1

두려워 롤백하는 것이 가장 좋습니다. 그러나 세 개의 insert 문을 모두 포함하는 트랜잭션을 생성하고 트랜잭션이 성공하는지 확인하십시오. 그렇지 않으면 전체 트랜잭션을 롤백 할 수 있습니다. 그것이 롤백의 전체 목적입니다.

webApi 코드에 SQLException을 캡처하고 이전 삽입 문에서 추가 한 콘텐츠를 삭제할 수 있지만 이는 좋지 않은 생각입니다.

관련 문제