从Python运行SQL’Kill’
发布时间:2020-12-20 13:17:20 所属栏目:Python 来源:网络整理
导读:我总是通过pymssql从 Python上的SQL数据库中检索数据,这可能导致太多的空闲连接.因此,我编写了一个SQL程序来杀死空闲连接,它在我在SSMS上执行时起作用.但是,当我尝试在python上执行它时它会失败并引发: (6115,b’KILL command cannot be used inside user t
我总是通过pymssql从
Python上的SQL数据库中检索数据,这可能导致太多的空闲连接.因此,我编写了一个SQL程序来杀死空闲连接,它在我在SSMS上执行时起作用.但是,当我尝试在python上执行它时它会失败并引发:
以下代码是从python执行SQL过程的方法, import pymssql conn = pymssql.connect(server,username,password,dbname) cursor = conn.cursor() cursor.execute("exec killconn") 我怎么处理这个? 非常感谢. 解决方法
这可能不是空闲连接的基本问题的解决方案,但SQL服务器的错误是由默认情况下pymssql包装事务中的每个连接引起的.诸如KILL之类的命令不能在事务内运行,因此如果以这种方式调用则会失败.
为了防止pymssql或其他python数据库连接添加此事务,可以将autocommit设置为True. 因为它是一个被调用的存储过程,所以callproc()可能比execute()更合适. import pymssql conn = pymssql.connect(server,dbname) conn.autocommit(True) cursor = conn.cursor() cursor.callproc("killconn") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |