TRANSACTION에서 몇 가지 INSERT 및 UPDATE를 실행하는 SQL Server 2008 R2 저장 프로 시저가 있습니다. 각 문장이 끝나면 다음 단계를 수행하기 전에 일어난 일을 기록해야합니다.트랜잭션에서 이벤트를 기록하는 방법
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO... -- 1st statement
INSERT INTO MyEventLog (EventDescription) VALUES ('Did Step 1') -- log
UPDATE... -- 2nd statement
INSERT INTO MyEventLog (EventDescription) VALUES ('Did Step 2') -- log
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF (@@TRANCOUNT<>0) ROLLBACK TRANSACTION
EXEC LogError 'I got an error'
END CATCH
문제는 다음과 같습니다 : - 내가 필요로 로깅을 포함 할 경우에 에러가 발생했을 경우, 트랜잭션이 다시 모든 문을 롤
여기 내 코드입니다. 오류가 발생하면 어떻게 트랜잭션을 롤백하지만 로깅은 유지합니까.
어떻게? 무슨 뜻인지 보여주는 코드 예제를 업데이트하십시오. 명령은 동일하게 유지되어야하며 비 loggin 명령문은 TRANS에 있어야합니다. –