【发布时间】:2012-09-05 21:31:33
【问题描述】:
我们有一个开发人员使用使用 freetds 的 pymssql 连接到 SQL Server。他的脚本根据 MySQL 数据库中的值动态生成 sql 插入查询。
当您在 SQL Profiler 中查看这些语句时,它们会被正确解析并在其中包含正确的开始事务/提交。出现“已将数据库上下文更改为...”的唯一“用户错误消息”,每当您在 SQL 中发出 USE 时就会出现。批处理完成后,会出现事务日志事件“回滚”,并且删除所有插入的记录。
我们没有使用 XACT_ABORT_OFF,因为我没有看到“将数据库上下文更改为”受到它的影响。
有人对此有任何想法或经验吗?谢谢!
[编辑]: 从分析器复制的代码在 SSMS 中使用相同的用户运行良好,并且没有触发器。
[第二次编辑]: 在 SQL 探查器中,我在 eventsubtype 下看到一个带有“rollback”的“TransactionLog”条目,但是没有 TM:Rollback Tran
【问题讨论】:
-
是否检查过表上是否存在导致回滚的触发器?您是否直接从 SSMS 中的分析器运行查询并查看会发生什么?
-
正确,表上没有触发器,当我将代码粘贴到 SSMS 中时,它也可以使用相同的用户名顺利运行。感谢您的意见!
标签: sql sql-server rollback pymssql