![](/img/trans.png)
[英]Update SQL Server database using stored procedure with table as paramater using PYODBC in Python
[英]Not able to create database using stored procedure pyodbc SQL SERVER
我试图调用从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似乎创建了数据库。 已经提到了几个问题,包括这个问题。
Python DB API 2.0指定默认情况下应在禁用自动提交的情况下打开连接。 但是,许多数据库要求不在事务中执行DDL语句。 尝试禁用自动提交执行DDL语句可能会导致错误或意外结果。
因此,确保在启用了自动提交的连接上执行DDL语句更安全。 这可以通过在打开连接时设置autocommit=True
来实现......
cnxn = pyodbc.connect(connection_string, autocommit=True)
...或通过在现有连接上启用autocommit
...
cnxn = pyodbc.connect(connection_string)
# ...
cnxn.autocommit = True
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.