从 pyodbc 调用时,CREATE PROCEDURE 静默失败

CREATE PROCEDURE fails silently when called from pyodbc

我无法使用 Python 的 pyodbc 创建 SQL 服务器存储过程。命令正确执行,我没有收到任何错误消息,但是存储过程没有出现在服务器上

import pyodbc

host = 'myServer'
database = 'model'
conn = pyodbc.connect(
        r'DRIVER={SQL Server Native Client 11.0};' +
        r'SERVER=' + host + ';' +
        r'DATABASE=' + database + ';' +
        r'Trusted_Connection=yes'
    )
cursor = conn.cursor()

sql = """
        CREATE OR ALTER PROCEDURE [dbo].[Test] AS 
        SELECT 1  
        """
cursor.execute(sql)
conn.close()

pyodbc 连接默认禁用自动提交,如 Python 的 DB API 2.0 spec 中所指定。在该模式下,必须通过在连接上调用 commit() 来提交对数据库的任何更改。

如果您想要启用自动提交的连接,请参阅了解详细信息。