2012-12-24 2 views
1

IIS 호스팅 된 파이썬 응용 프로그램이 있고 프론트 응용 프로그램은 항상 저장하지 못했습니다.롤백 트랜잭션 SQL

SQL 프로필러가 실행 중이고 해당 응용 프로그램 이름이 IIS 일 때 롤백 횟수가 0보다 많음을 확인했습니다.

트랜잭션 카운트가 0 이상일 때 언젠가 커밋을 수행했습니다.

그게 무슨 뜻인지 궁금하고 어디에서이 컨트롤을 실행하는 스크립트를 찾을 수 있습니까?

쿼리 디자인 문제로 인해 발생합니까? 어떤 조언을 주셔서 감사합니다.

IF @@TRANCOUNT > 0 
     ROLLBACK TRANSACTION; 

답변

1

코드는 당신이 게시 :

IF @@TRANCOUNT > 0 
    ROLLBACK TRANSACTION; 

활성 트랜잭션이있는 경우 롤백 말한다.

아마도 원하는 것은 아닙니다.

IF @@TRANCOUNT > 0 
    COMMIT TRANSACTION; 
+0

하드 질문에 대해 무엇을 알고 :

나는 당신이 실제로 원하는 것은 이것이다 생각한다. OP가 T-SQL, MSSQL Server 또는 Sybase 방언을 사용하고있는 것 같습니다. 아마도 'ROLLBACK TRANSACTION'논리는 오류 처리에 유용 할 수 있습니다. [MSSQL의'TRY ... CATCH' 문서] (http://msdn.microsoft.com/en-us/library/ms175976.aspx) 커밋 할 수없는 트랜잭션의 경우 'XACT_STATE'입니다. – hardmath

+0

안녕하세요, Mitch, 나는 SQL Profiler에서 상당히 많은 트랜잭션 롤백을 발견했습니다. 특히 최종 사용자가 프런트 엔드 애플리케이션에서 같은 시간에 레코드를 절약 할 때. –

+0

안녕하세요,하지만 프런트 엔드 응용 프로그램을 저장하지 못하게하여 롤백이 종료되었습니다. –