使用 PyMSSQL 执行引用链接服务器的存储过程时出错
Error Executing Stored Procedure that References Linked Server with PyMSSQL
我正在尝试通过 pymssql 从 python 脚本执行与链接服务器通信的存储过程。 SP 在手动 运行 时工作,但是当 python 脚本中的 运行 出错时:
(7391, 'The operation could not be performed because OLE DB
provider"SQLNCLI11" for linked server "DBLOG" was unable to begin a
distributed transaction.DB-Lib error message 20018, severity 16:
\nGeneral SQL Server error: Check messages from the SQL Server\n')
我没能找到任何将此作为 pymssql 自身限制的内容。我不太确定从哪里开始。我用 pymssql 做了很多工作,从来没有遇到过任何连接问题,而且我已经验证我使用的登录名有足够的权限(我什至尝试使用 SA)。
有什么想法吗?
谢谢!
我能够通过试图在链接服务器上进行更新的 SP 重现该问题,例如
UPDATE LINKEDSERVERNAME...TableName SET ...
尽管我的错误信息略有不同
(8501, "MSDTC on server 'PANORAMA\SQLEXPRESS' is unavailable.DB-Lib error message 20018, ...
我可以通过在 pymssql.connect
调用的末尾添加一个 autocommit=True
参数来避免这个问题。
如果出于某种原因使用 autocommit=True
对你没有好处,那么看看
有关配置 MSDTC 的信息。
我正在尝试通过 pymssql 从 python 脚本执行与链接服务器通信的存储过程。 SP 在手动 运行 时工作,但是当 python 脚本中的 运行 出错时:
(7391, 'The operation could not be performed because OLE DB
provider"SQLNCLI11" for linked server "DBLOG" was unable to begin a
distributed transaction.DB-Lib error message 20018, severity 16:
\nGeneral SQL Server error: Check messages from the SQL Server\n')
我没能找到任何将此作为 pymssql 自身限制的内容。我不太确定从哪里开始。我用 pymssql 做了很多工作,从来没有遇到过任何连接问题,而且我已经验证我使用的登录名有足够的权限(我什至尝试使用 SA)。
有什么想法吗?
谢谢!
我能够通过试图在链接服务器上进行更新的 SP 重现该问题,例如
UPDATE LINKEDSERVERNAME...TableName SET ...
尽管我的错误信息略有不同
(8501, "MSDTC on server 'PANORAMA\SQLEXPRESS' is unavailable.DB-Lib error message 20018, ...
我可以通过在 pymssql.connect
调用的末尾添加一个 autocommit=True
参数来避免这个问题。
如果出于某种原因使用 autocommit=True
对你没有好处,那么看看
有关配置 MSDTC 的信息。