T-SQL에서 트랜잭션을 ROLLBACK 한 후 코드 실행을 중지 할 수 있습니까? 예를 들어, 아래의 코드에서 'Message 1'을 인쇄하려고하지만 'Message 2'는 인쇄하지 마십시오. 그것은 SP 또는 유사에 있다면SQL 트랜잭션 ROLLBACK을 실행할 때 실행 중지
BEGIN TRANSACTION
GO
PRINT 'Message 1'
ROLLBACK TRANSACTION
GO
PRINT 'Message 2'
GO
T-SQL에서 트랜잭션을 ROLLBACK 한 후 코드 실행을 중지 할 수 있습니까? 예를 들어, 아래의 코드에서 'Message 1'을 인쇄하려고하지만 'Message 2'는 인쇄하지 마십시오. 그것은 SP 또는 유사에 있다면SQL 트랜잭션 ROLLBACK을 실행할 때 실행 중지
BEGIN TRANSACTION
GO
PRINT 'Message 1'
ROLLBACK TRANSACTION
GO
PRINT 'Message 2'
GO
을 사용할 수 있으며,이 경우에도 첫 번째 오류가있는 경우, 다음 배치가 실행된다는 것을 의미합니다. 나는 당신이 오류를 범하면 당신이 우회하려고한다는 것을 가정하고있다.
GOTO
에서 오류 처리 블록을 볼 수 있습니다. 아니면 RETURN
일 수도 있습니다. 그러나,이 같은 GO
블록 내에서 할 필요가
예 :
GO
return
SELECT 'Test 1'
GO
SELECT 'Test 2'
GO
아직 시험이 반환하지만, 당신이 할 수 있었던 GO 키워드에 대한 마이크의 문에 또한 1
, 당신은 GO
문은 일괄 분리되어 RETURN에게
을 테스트하지 않습니다 이 같은 것을 시도하십시오
BEGIN TRY
Begin Transaction
print 'Message1'
Select 1/0 --throws error
Commit Transaction
print 'Message2'
END TRY
BEGIN CATCH
rollback transaction
END CATCH