gpt4 book ai didi

python - 无法使用存储过程pyodbc SQL SERVER 创建数据库

转载 作者:搜寻专家 更新时间:2023-10-30 19:47:14 32 4
gpt4 key购买 nike

我正在尝试调用从 pyodbc 创建数据库的存储过程

以下是代码的最小示例

import pyodbc
conn = pyodbc.connect("Driver={SQL Server};Server=SERVERNAME;Trusted_Connection=yes;")
cursor=conn.cursor()
cursor.execute("""\
DECLARE @RC int
DECLARE @ClientName varchar(255)
SET @ClientName = 'Test'
EXECUTE @RC = [DB_NAME].[SCHEMA].[sp_NAME] @ClientName
""")
conn.commit()

理想情况下,代码应该在 SQL Server 实例中创建一个名为“Test”的数据库。这不会产生任何错误。但是没有创建数据库。

运行

DECLARE @RC int
DECLARE @ClientName varchar(255)
SET @ClientName = 'Test'
EXECUTE @RC = [DB_NAME].[SCHEMA].[sp_NAME] @ClientName

似乎是从 SSMS 创建数据库。已经提到了几个问题,包括 this one .

最佳答案

Python DB API 2.0指定默认情况下打开连接时应禁用自动提交。但是,许多数据库要求 DDL 语句在事务中执行。尝试在禁用自动提交的情况下执行 DDL 语句可能会导致错误或意外结果。

因此,确保在启用自动提交的连接上执行 DDL 语句会更安全。这可以通过在打开连接时设置 autocommit=True 来实现...

cnxn = pyodbc.connect(connection_string, autocommit=True)

... 或者通过在现有连接上启用自动提交 ...

cnxn = pyodbc.connect(connection_string)
# ...
cnxn.autocommit = True

关于python - 无法使用存储过程pyodbc SQL SERVER 创建数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55829191/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com