Sqlalchemy MSSQL erstellt Datenbank-Anweisung nicht zulässig in Multi-Anweisung Transaktion

Mit sqlalchemy 1.0.4, python 3.4.3 und pyodbc 3.0.10.

Ich möchte eine Datenbank mit rohem sql für den MS SQL Server erstellen.

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() 

Aber der obige Code gibt einen Fehler "create database statement not allowed within multi-statement transaction" .

Ich habe versucht, con.execute("commit") vor dem Schöpfungsskript, aber es tut nichts.

AKTUALISIEREN
Wenn ich den Treiber ?driver=SQL+SERVER funktioniert es !?

One Solution collect form web for “Sqlalchemy MSSQL erstellt Datenbank-Anweisung nicht zulässig in Multi-Anweisung Transaktion”

Es scheint, ein paar Möglichkeiten, dies zu tun, mit dem Schlüssel ist auto verpflichten. Ich konnte nicht einfach auf SQL SERVER wechseln, weil es Probleme mit Apache verursacht. Wenn du nur pyodbc benutzen möchtest, kannst du:

 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() 

Sie können auch sqlalchemy verwenden, um die Verbindung mit zu erstellen:

 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;") 

Ich habe mich von der Datei angehängt, aber ich nehme an, es funktioniert auch ohne.

  • Änderungssammelklassenschlüssel der Referenz in association_proxy
  • Mehrere Domains und Subdomains auf einer einzigen Pyramid-Instanz
  • Kann Alembic die Säulenänderungen autogenisieren?
  • Streaming-Ergebnisse mit Blaze und SqlAlchemy
  • Mapping viele ähnliche Tabellen in SQLAlchemy
  • Wie lösche man Zeilen aus einer Tabelle mit einer SQLAlchemy-Abfrage ohne ORM?
  • Verwenden von SQLAlchemy auf App Engine-Entwicklungsserver
  • Setzen Sie Pandas Dataframe zu mysql mit sqlalchemy ein
  • SQLAlchemy korreliertes Update mit mehreren Spalten?
  • Sqlalchemy: one-to-one-Beziehung mit deklarativem
  • Methode der Iteration über die definierten Spalten des sqlalchemy-Modells?
  • Python ist die beste Programmiersprache der Welt.