2016-08-08 38 views
1

我試圖通過與鏈接服務器進行通信的python腳本執行存儲過程。執行使用PyMSSQL引用鏈接服務器的存儲過程的錯誤

(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本身的限制:手動運行時,但是從python腳本錯誤與跑出來時,SP的作品。我不確定從哪裏開始。我使用pymssql做了很多工作,並且從來沒有任何連接問題,並且我已經驗證了我使用的登錄名具有足夠的權限(我甚至嘗試使用SA)。

任何想法?

謝謝!

回答

3

我能夠與試圖做鏈接的服務器上的更新SP,如重建的問題,

UPDATE LINKEDSERVERNAME...TableName SET ... 

雖然我的錯誤消息略有不同

(8501, 「在服務器'PANORAMA \ SQLEXPRESS'上的MSDTC不可用.DB-Lib錯誤消息20018,...

我能夠通過添加autocommit=True參數到我的pymssql.connect呼叫的結尾處。

如果使用autocommit=True某種原因沒有很好的爲你再看看

MSDTC on server 'server is unavailable

有關配置MSDTC的信息。

+0

這解決了這個問題完美!現在我只是通過看似隨機的存儲過程來解決問題。我拿出所有的打印語句,並設置nocount,這似乎是修復它。但現在它偶爾會再次發生。 – Jacob

相關問題