2016-08-08 7 views
1

Я пытаюсь выполнить хранимую процедуру из скрипта python через pymssql, который связывается со связанным сервером. SP работает при запуске вручную, но при запуске из ошибок питона скрипта с:Ошибка выполнения хранимой процедуры, ссылающейся на связанный сервер с 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. Я не совсем уверен, с чего начать. Я довольно много работаю с pymssql и никогда не встречал никаких проблем с подключением, и я подтвердил, что логин, который я использую, имеет достаточные разрешения (я даже пытался использовать SA).

Любые идеи?

Спасибо!

ответ

3

я смог воссоздать этот вопрос с SP, который пытался сделать UPDATE на связанном сервере, например,

UPDATE LINKEDSERVERNAME...TableName SET ... 

хотя мое сообщение об ошибке было немного отличается

(8501, «MSDTC на сервере„ПАНОРАМА \ SQLEXPRESS“является unavailable.DB-Lib сообщение об ошибке 20018, ...

Я был в состоянии избежать проблемы путем добавления autocommit=True аргумент к концу моего звонка pymssql.connect.

Если по какой-то причине, используя autocommit=True не хорошо для вас, то посмотрите на

MSDTC on server 'server is unavailable

для получения информации о настройке MSDTC.

+0

Это исправило эту проблему отлично! Теперь я просто работаю над проблемами моего сохраненного процесса, выходящего, казалось бы, случайным образом. Я вынул все распечатки и установил nocount, и это казалось, что оно исправлено. Но теперь это случается снова изредка. – Jacob

 Смежные вопросы

  • Нет связанных вопросов^_^