Это ответ на вопрос к предыдущему вопросу - Невозможно создать базу данных с помощью хранимой процедуры 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]
отлично работает и дает желаемые результаты.