2017-03-27 11 views
0

Ich möchte eine Verbindung zu MS SQL Server herstellen und einen SQL-Befehl mit Python ausführen. Ich bin vertraut mit der Verwendung von SQLAlchemy, um SQL-Tabellen, Pandas DataFrames, etc. zu erstellen, aber wie kann ich das SQL in einer SQL-Datei mit Python/Pandas/SQLAlchemy ausführen? Gibt es einen besseren Weg, es zu tun?Wie führe ich einen SQL-Befehl mit Python?

Zum Beispiel habe ich die Datei 'update.sql', die den SQL-Text enthält:

truncate table dev.dbo.jobs 
truncate table dev.dbo.workers 
go 
insert into dev.dbo.jobs select * from test.dbo.jobs 
insert into dev.dbo.workers select * from test.dbo.workers 
+0

bereits beantwortet - siehe http://stackoverflow.com/questions/33725862/connecting-to-microsoft-sql-server -using-python –

Antwort

2

Sie können SQLAlchemy der Connection.Execute verwenden rohe SQL-Abfragen auszuführen. Wenn Sie die SQL-Anweisungen in einer Datei gespeichert haben, dann könnte es in etwa so aussehen:

from sqlalchemy import create_engine 
from sqlalchemy.sql import text 

engine = create_engine('urltodb') 
conn = engine.connect() 

with open('file.sql', 'r') as f: 
    for l in f: 
     stmt = text(l) 
     conn.execute(stmt) 

conn.close() 
+0

Muss ich diese Verbindung schließen oder wird sie sich selbst schließen? – Ben

+0

Wenn Sie die Verbindung beendet haben, ist es am besten, sie zu schließen, um sie im Pool freizugeben. Ich werde das Beispiel aktualisieren. – WillySchu

Verwandte Themen