我正在尝试使用sqlalchemy和turbodbc在MSSQL服务器上创建数据库。
下面是我的代码
from sqlalchemy import create_engine
import turbodbc
username = ''
password = ''
server = ''
database = ''
driver= 'ODBC+Driver+17+for+SQL+Server'
con = create_engine(f"mssql+turbodbc://{username}:{password}@{server}:1433/{database}?driver={driver}")
con.execute(f"create database newdb")
错误
DatabaseError: (turbodbc.exceptions.DatabaseError) ODBC error
state: 42000
native error code: 226
message: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]CREATE DATABASE statement not allowed within multi-statement transaction.
[SQL: create database sai]
(Background on this error at: http://sqlalche.me/e/4xp6)
有人可以帮忙吗?我希望仅使用以下模块创建数据库:SQLALCHEMY,Turbodbc或psycopg2。由于某些限制。
谢谢
答案 0 :(得分:0)
来自CREATE DATABASE文档。
CREATE DATABASE语句必须在自动提交模式下运行(默认 交易管理模式),并且不允许在显式或 隐式交易。
在SqlAlchemy中,您可以set autocommit像这样将其作为参数传递:
engine.execute(text("SELECT my_mutating_procedure()").execution_options(autocommit=True))
答案 1 :(得分:0)
得到解决方案。这对我有用
data