Хранимая процедура не создана в базе данных, созданной с помощью хранимой процедуры - python sql-server - PullRequest
0 голосов
/ 29 апреля 2019

Это ответ на вопрос к предыдущему вопросу - Невозможно создать базу данных с помощью хранимой процедуры pyodbc SQL SERVER

В предыдущем вопросе я получил ERROR_MESSAGE() -

CREATE DATABASE statement not allowed within multi-statement transaction.

Это было решено установкой autocommit=True в pyodbc

import pyodbc
conn = pyodbc.connect("Driver={SQL Server};Server=SQL01;Trusted_Connection=yes;",autocommit=True)
#conn.autocommit = True
cursor=conn.cursor()
cursor.execute("""\
    DECLARE @RC int
    DECLARE @ClientName varchar(255)
    SET @ClientName = 'Test2'
    EXECUTE @RC = [test].[dbo].[ClientDBCreation] @ClientName
""")
conn.commit()

После создания базы данных 'Test2' хранимая процедура [test].[dbo].[ClientDBCreation] продолжает создавать несколько хранимых процедур ввновь созданная Test2 БД.Из pyodbc эти хранимые процедуры не создаются.

В SSMS выполнение [test].[dbo].[ClientDBCreation] отлично работает и дает желаемые результаты.

...