在MSSQL Server上使用sqlalchemy-turbodbc创建数据库

时间:2019-09-24 11:25:25

标签: python sql-server sqlalchemy turbodbc

我正在尝试使用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。由于某些限制。

谢谢

2 个答案:

答案 0 :(得分:0)

来自CREATE DATABASE文档。

  

CREATE DATABASE语句必须在自动提交模式下运行(默认   交易管理模式),并且不允许在显式或   隐式交易。

在SqlAlchemy中,您可以set autocommit像这样将其作为参数传递:

engine.execute(text("SELECT my_mutating_procedure()").execution_options(autocommit=True))

答案 1 :(得分:0)

得到解决方案。这对我有用

data