bcpandas

2.7.2 · active · verified Thu Apr 16

bcpandas (version 2.7.2) is a Python library providing a high-level wrapper around the Microsoft SQL Server BCP utility. It enables high-performance data transfers between pandas DataFrames and SQL Server databases without requiring direct knowledge of BCP commands. The library is actively maintained and typically releases updates to support newer Python and pandas versions.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates writing a pandas DataFrame to a SQL Server database using `bcpandas.to_sql`. It initializes a `SqlCreds` object with connection details, creates a sample DataFrame, and then uses `to_sql` to perform a bulk insert. Environment variables are used for sensitive credentials for security and flexibility. Note that `bcpandas.read_sql` has been removed, so `pandas.read_sql` functions should be used for reading data.

import pandas as pd
import numpy as np
import os
from bcpandas import SqlCreds, to_sql

# Ensure these environment variables are set for your SQL Server connection
server = os.environ.get('SQL_SERVER_NAME', 'your_sql_server_name')
database = os.environ.get('SQL_DB_NAME', 'your_database_name')
username = os.environ.get('SQL_USERNAME', 'your_username')
password = os.environ.get('SQL_PASSWORD', 'your_password')

creds = SqlCreds(
    server,
    database,
    username,
    password
)

df = pd.DataFrame(
    data=np.random.randint(0, 100, size=(10, 3)),
    columns=['col_A', 'col_B', 'col_C']
)

table_name = 'my_test_table_bcpandas'

# Write DataFrame to SQL Server (most common use case)
to_sql(df, table_name, creds, index=False, if_exists='replace')

print(f"DataFrame successfully written to table '{table_name}' on {server}/{database}")

view raw JSON →