sqlalchemy MSSQL crea una statement de base de datos no permitida dentro de una transacción de múltiples declaraciones

Usando sqlalchemy 1.0.4, python 3.4.3 y pyodbc 3.0.10.

Quiero crear una base de datos con sql sin procesar para el servidor MS SQL.

c = "mssql+pyodbc://sa:admin11$$@PROIMT01\SQLEXPRESS/master?driver=SQL+Server+Native+Client+11.0" e = create_engine(c,echo=True) con = e.connect() con.execute("CREATE DATABASE xb;") con.close() 

Pero el código anterior devuelve un error "create database statement not allowed within multi-statement transaction" .

Intenté con.execute("commit") antes del script de creación, pero no hace nada.

ACTUALIZAR
Si configuro el controlador ?driver=SQL+SERVER funciona?

Parece que hay un par de formas para hacer esto, con la clave siendo el auto commit. No pude simplemente cambiar al SERVIDOR SQL porque parece causar problemas con Apache. Si solo quieres usar pyodbc puedes hacer:

 import pyodbc conn =pyodbc.connect("driver={SQL Server Native Client 11.0};server=databaseBName; database=master; trusted_connection=yes;", autocommit=True) curr = conn.execute("CREATE DATABASE databaseName ON (FILENAME='E:\\SQL\\path_to_file.mdf') FOR ATTACH;") curr.close() 

También puedes usar sqlalchemy para crear la conexión con:

 import sqlalchemy engine = sqlalchemy.create_engine("mssql+pyodbc://serverName/master?driver=SQL Server Native Client 11.0;", connect_args = {'autocommit':True}) engine.execute("CREATE DATABASE databaseName ON (FILENAME='E:\\SQL\\path_to_file.mdf') FOR ATTACH;") 

Lo he estado adjuntando por archivo pero supongo que también funciona sin él.