【发布时间】:2018-12-29 21:19:31
【问题描述】:
我总是通过 pymssql 从 Python 上的 SQL 数据库中检索数据,这可能导致空闲连接过多。因此,我编写了一个 SQL 过程来终止空闲连接,并且当我在 SSMS 上执行时它可以工作。但是,当我尝试在 python 上执行它时,它会失败并引发:
(6115, b'KILL 命令不能在用户事务中使用。DB-Lib 错误消息 20018,严重性 16:\n一般 SQL Server 错误:检查 来自 SQL Server 的消息\n')
以下代码是从python执行SQL过程的方法,
import pymssql
conn = pymssql.connect(server, username, password, dbname)
cursor = conn.cursor()
cursor.execute("exec killconn")
我该如何处理?
非常感谢。
【问题讨论】:
-
这是我找到的一个案例,但我仍然很困惑如何处理它。 sql-server-performance.com/2007/…
-
在黑暗中拍摄(可能未命中) 这不是连接对象的权限升级,所以不允许吗?还是您在两个地方都使用相同的用户名/密码?
-
为什么你的程序没有关闭和破坏它的连接?解决根本原因,而不是症状。
-
@scsimon 是的,这是一种方式。谢谢。
-
@alroc 说了什么。通过关闭和处理连接对象来修复糟糕的代码,问题将不再困扰您。
标签: python sql-server