문제

한 두 가지가 아닌 저장 프로시저를 관리하는 자신의 트랜잭션

CREATE PROCEDURE theProc
AS
BEGIN

  BEGIN TRANSACTION

-- do some stuff

  IF @ThereIsAProblem
    ROLLBACK TRANSACTION
  ELSE
    COMMIT TRANSACTION
END

면 나는 이 proc 에서 기존의 트랜잭션,proc 할 수 있는 롤백 외부 트랜잭션이 있습니다.

BEGIN TRANSACTION
EXEC theProc
COMMIT TRANSACTION

어떻게 적절 범위 내에서 거래 저장 프로시저는 저장되지 않으로 롤백 외부 거래?

도움이 되었습니까?

해결책

구문을 이렇게 아마도까지 다양하여 데이터베이스입니다.하지만 Transact-SQL 에서 당신은 무엇을 할지 확인@@TRANCOUNT 당신이에서 트랜잭션이 있습니다.그런 다음 경우를 만들고 싶을 저장점,그리고 끝에할 수 있습니다 그냥 통과 끝의 기능(믿음 commit,rollback 일 이상)또는 다른 롤백하의 저장점.

Microsoft's documentation 저장점 니다.

에 대한 지원이 저장점은 매우 광범위하게,하지만 제가 생각하는 메커니즘을(있다고 가정하면 중 하나입)발견을 위해 현재 트랜잭션에 따라 다를 것입니다.

다른 팁

사용@@trancount 을 보면 당신은 이미 트랜잭션에 입력할 때

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top