freetds를 사용하는 pymssql을 사용하여 SQL Server에 연결하는 개발자가 있습니다. 그의 스크립트는 MySQL DB의 값을 기반으로 SQL 삽입 쿼리를 동적으로 생성합니다.pymssql 롤백에서 SQL로 트랜잭션이 발생합니다.
문은 올바르게 구문 분석되고 SQL 프로파일 러에서 해당 명령문을 볼 때 적절한 begin transaction/commit를가집니다. 유일한 '사용자 오류 메시지'는 '변경된 데이터베이스 컨텍스트 ...'이며 SQL에서 USE를 실행할 때마다 나타납니다. 배치가 완료되면 트랜잭션 로그 이벤트 '롤백'이 발생하고 삽입 된 모든 레코드가 제거됩니다.
'db 컨텍스트 변경'이 영향을받지 않기 때문에 XACT_ABORT_OFF를 사용하고 있지 않습니다.
누구나 아이디어 나 경험이 있습니까? 감사!
[편집] : 프로파일 러에서 복사 된 코드는 SSMS에서 동일한 사용자를 사용하여 정상적으로 작동하며 트리거가 없습니다.
[2 편집] : SQL 프로파일 내부 내가 eventsubtype에서 '롤백'와 'TRANSACTIONLOG'항목을 참조는, 그러나 TM이되지 않습니다 : 롤백 트란
테이블에 롤백을 일으키는 트리거가 있는지 확인 했습니까? 프로파일 러에서 SSMS의 쿼리를 직접 실행하고 어떤 일이 일어 났는지 보셨습니까? – HLGEM
정답 : 테이블에 트리거가 없으며 SSMS에 코드를 붙여 넣으면 동일한 사용자 이름을 사용하여 장애없이 작동합니다. 의견을 보내 주셔서 감사합니다! –