2017-03-27 12 views
0

Je voudrais me connecter à MS SQL Server et exécuter une commande SQL avec python. Je suis familier avec l'utilisation de SQLAlchemy pour créer des tables SQL, pandas DataFrames, etc., mais comment puis-je exécuter le SQL dans un fichier .sql avec python/pandas/SQLAlchemy? Y a-t-il une meilleure façon de le faire?Comment faire pour exécuter une commande SQL avec python?

Par exemple, j'ai le fichier « update.sql » qui contient le texte SQL:

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

déjà répondu - s'il vous plaît voir http://stackoverflow.com/questions/33725862/connecting-to-microsoft-sql-server -using-python –

Répondre

2

Vous pouvez utiliser Connection.Execute de SQLAlchemy pour exécuter des requêtes SQL premières. Si vous avez les instructions SQL stockées dans un fichier alors il pourrait ressembler à ceci:

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

Ai-je besoin de fermer cette connexion ou va-t-elle se fermer? – Ben

+0

Si vous avez fini d'utiliser la connexion, il est préférable de la fermer pour la libérer dans la piscine. Je vais mettre à jour l'exemple. – WillySchu