Connection modules for Microsoft SQL Database

This article provides download links to connection modules or drivers that your client programs can use for interacting with Microsoft SQL Server, Azure SQL Database, and Azure SQL Managed Instance. Drivers are available for a variety of programming languages, running on the following operating systems:

  • Linux
  • macOS
  • Windows

OOP-to-relational mismatch:

Relational: Client programs that are written in an object-oriented programming (OOP) language often use SQL drivers, which return queried data in a format that is more relational than object oriented. C# using ADO.NET is one example. The OOP-relational format mismatch sometimes makes the OOP code harder to write and understand.

ORM: Other drivers or frameworks return queried data in the OOP format, avoiding the mismatch. These drivers work by expecting that classes have been defined to match the data columns of particular SQL tables. The driver then performs the object-relational mapping (ORM) to return queried data as an instance of a class. Microsoft's Entity Framework (EF) for C#, and Hibernate for Java, are two examples.

The present article devotes separate sections to these two kinds of connection drivers.

Drivers for relational access

Language Download the SQL driver
C# ADO.NET
Microsoft.Data.SqlClient
.NET for: Linux-Ubuntu, macOS, Windows
C++ ODBC

OLE DB
Go Go MSSQL driver, install instructions
Go download page
Java JDBC
Node.js Node.js driver, install instructions
PHP PHP
Python pyodbc, install instructions
Download ODBC
Ruby Ruby driver, install instructions
Ruby download page

Drivers for ORM access

The following table lists examples of Object Relational Mapping (ORM) frameworks that client applications use to connect to Microsoft SQL Database.

Language ORM driver download
C# Entity Framework Core
Entity Framework (6.x or later)
Go GORM
Java Hibernate ORM
PHP Eloquent ORM, included in Laravel install
Node.js Sequelize ORM
Prisma
Python Django
SQL Server backend for Django
Ruby Ruby on Rails

See also