sql >> Base de Datos >  >> RDS >> Sqlserver

inserción masiva básica de pyodbc

Aquí hay una función que puede hacer la inserción masiva en la base de datos de 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()

Esto definitivamente funciona.

ACTUALIZACIÓN:He notado en los comentarios, además de codificar regularmente, que pyodbc es mejor compatible que pypyodbc.

NUEVA ACTUALIZACIÓN:elimine conn.close() ya que la declaración with maneja eso automáticamente.