Skip to content

Latest commit

 

History

History
86 lines (60 loc) · 2.48 KB

File metadata and controls

86 lines (60 loc) · 2.48 KB

Connecting Python and Microsoft SQL Server with ADBC

Instructions

Tip

If you already have a SQL Server instance running, skip the steps to run SQL Server in a Docker container.

Prerequisites

  1. Install uv

  2. Install dbc

  3. Install Docker

Set up SQL Server

  1. Start SQL Server in a Docker container:

    docker run \
       -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Co1umn&r" \
       -p 1433:1433 --name mssql --hostname mssql \
       -d \
       mcr.microsoft.com/mssql/server:2025-latest
  2. Create a table in SQL Server and load data into it:

    docker cp games.sql mssql:/tmp/games.sql
    
    docker exec -it mssql /opt/mssql-tools18/bin/sqlcmd \
      -S localhost -U sa -P 'Co1umn&r' -C -i /tmp/games.sql

Connect to SQL Server

  1. Install the SQL Server ADBC driver:

    dbc install mssql
  2. Customize the Python script main.py as needed

    • Change the connection arguments in db_kwargs
      • Change uri as needed, using query parameters to add more connection arguments, or keep it as is to use the data included with this example
    • If you changed which database you're connecting to, also change the SQL SELECT statement in cursor.execute()

Tip

To use Microsoft Entra ID for authentication, install the Azure CLI, log in using the az login command, and add fedauth= to your connection URI. For example:

sqlserver://my-database-endpoint.database.windows.net:1433?database=my-database-name&fedauth=ActiveDirectoryDefault
  1. Run the Python script:

    uv run main.py

Clean up

  1. Stop the Docker container running SQL Server:

    docker stop mssql
    docker rm mssql