建立连接时,pyodbc的默认设置autocommit=False
符合Python的DB- API规范。因此,当执行第一个sql语句时,ODBC将开始有效的数据库事务,直到Python代码对连接执行a.commit()
或a为止.rollback()
。
sql Server不允许CREATE DATABASE
在这样的事务中执行,因此我们需要autocommit
在发出此类语句之前以模式进行连接。打开连接时可以完成…
conn = pyodbc.connect(conn_str, autocommit=True)
…或者autocommit
如果已经建立连接,则切换到模式:
conn = pyodbc.connect(conn_str) # autocommit=False by default
# ...
conn.autocommit = True
conn.execute("CREATE DATABASE MyNewDatabase")