Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

inserto bulk pyodbc di base

Ecco una funzione che può eseguire l'inserimento in blocco nel database di SQL Server.

import pyodbc
import contextlib

def bulk_insert(table_name, file_path):
    string = "BULK INSERT {} FROM '{}' (WITH FORMAT = 'CSV');"
    with contextlib.closing(pyodbc.connect("MYCONN")) as conn:
        with contextlib.closing(conn.cursor()) as cursor:
            cursor.execute(string.format(table_name, file_path))
        conn.commit()

Questo funziona sicuramente.

AGGIORNAMENTO:ho notato nei commenti, oltre alla codifica regolare, che pyodbc è supportato meglio di pypyodbc.

NUOVO AGGIORNAMENTO:rimuove conn.close() poiché l'istruzione with lo gestisce automaticamente.