Почему множественные вставки в хранимой процедуре не работают с PyODBC? - PullRequest
0 голосов
/ 10 октября 2019

Моя база данных - хранилище данных Azure. Моя версия Python - Python 2.7, и я использую PyODBC для вызова операторов SQL и хранимых процедур для базы данных.

Сценарий может подключаться и выполнять хранимые процедуры и штрафные запросы SQL на сервере. Однако у меня есть один сохраненный процесс без параметров, который просто выполняет нечто похожее на приведенное ниже из внешней таблицы (BLOB-объект Azure):

TRUNCATE TABLE dbo.Table1;
TRUNCATE TABLE dbo.Table2;
TRUNCATE TABLE dbo.Table3;

INSERT INTO dbo.Table1
SELECT * FROM ext.Table1;

INSERT INTO dbo.Table2
SELECT * FROM ext.Table2;

Etc...

Все операторы Truncate завершаются успешно. Вставки работают на первом столе. Сценарий заканчивается без вставки в другие таблицы. Запуск хранимого процесса с тем же пользователем в SSMS показывает, что он работает нормально. Тем не менее, PyODBC, похоже, не завершает сохраненный процесс без каких-либо ошибок или предупреждений. Это выглядит, как работает, но не работает.

Единственное, о чем я могу думать, это тот факт, что он отключен от внешних таблиц, и у внешних таблиц есть грязные чтения, которые отправляются клиенту как отклоненные сообщения. PyODBC может завершиться сбоем из-за отклоненных сообщений, возвращенных обратно в API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...