这是对上一个问题的追随者-Not able to create database using stored procedure pyodbc SQL SERVER
在上一个问题中,我收到了ERROR_MESSAGE()
-
CREATE DATABASE statement not allowed within multi-statement transaction.
这是通过在pyodbc中设置autocommit=True
来解决的
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
DB中创建一些存储过程。从pyodbc中不会创建这些存储过程。
在SSMS中,执行[test].[dbo].[ClientDBCreation]
可以很好地工作并给出所需的结果。