存储过程不是在通过存储过程python sql创建的数据库中创建的

2024-09-30 00:34:35 发布

您现在位置:Python中文网/ 问答频道 /正文

这是上一个问题的后续问题-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数据库中创建一些存储过程。不会从pyodbc创建这些存储过程。你知道吗

在SSMS中,执行[test].[dbo].[ClientDBCreation]可以完美地工作,并给出所需的结果。你知道吗


Tags: testtruesqlserver过程conncursorstatement

热门问题