我们有一个开发人员使用使用 freetds 的 pymssql 连接到 SQL Server。他的脚本根据 MySQL 数据库中的值动态生成 sql 插入查询。
当您在 SQL Profiler 中查看这些语句时,它们会被正确解析并在其中包含正确的开始事务/提交。出现“将数据库上下文更改为...”的唯一“用户错误消息”,每当您在 SQL 中发出 USE 时就会出现。批处理完成后,会出现事务日志事件“回滚”,并且删除所有插入的记录。
我们没有使用 XACT_ABORT_OFF 因为我没有看到“将数据库上下文更改为”受到它的影响。
有没有人对此有任何想法或经验?谢谢!
[编辑]:从分析器中复制的代码在 SSMS 中使用相同的用户可以正常工作,并且没有触发器。
[第二次编辑]:在 SQL 探查器中,我在 eventsubtype 下看到一个带有 'rollback' 的 'TransactionLog' 条目,但是没有 TM:Rollback Tran