Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

inserção em massa pyodbc básica


Aqui está uma função que pode fazer a inserção em massa no banco de dados 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()

Isso definitivamente funciona.

ATUALIZAÇÃO:notei nos comentários, além de codificar regularmente, que o pyodbc é melhor suportado do que o pypyodbc.

NOVA ATUALIZAÇÃO:remova conn.close() já que a instrução with lida com isso automaticamente.