System requirements, installation, and driver files
This article discusses the ODBC drivers that connect to SQL Server.
SQL version compatibility
Compatibility indicates that a driver was tested for compatibility against existing releases of SQL at the time of the driver's release. SQL Server releases generally try to maintain backward compatibility with existing client drivers. But new features in SQL Server releases might not be available with older client drivers.
Database version → ↓ Driver Version |
SQL database in Microsoft Fabric | Azure SQL Database | Azure Synapse Analytics | Azure SQL Managed Instance | SQL Server 2022 | SQL Server 2019 | SQL Server 2017 | SQL Server 2016 | SQL Server 2014 | SQL Server 2012 | SQL Server 2008 R2 | SQL Server 2008 | SQL Server 2005 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
18.4 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
18.3 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||
18.2 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||
18.1 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||
18.0 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
17.10 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
17.9 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||
17.8 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||
17.7 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||
17.6 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||
17.5 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||
17.4 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||
17.3 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
17.2 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
17.1 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
17.0 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
13.1 | Yes | Yes | Yes | Yes | Yes | Yes | |||||||
13 | Yes | Yes | Yes | Yes | Yes | ||||||||
11 | Yes | Yes | Yes | Yes | Yes |
Connection string details
The driver name that you specify in a connection string is one of the following values:
ODBC Driver 11 for SQL Server
ODBC Driver 13 for SQL Server
(for both 13 and 13.1)ODBC Driver 17 for SQL Server
ODBC Driver 18 for SQL Server
Supported operating systems
The following matrix indicates driver version support for Windows operating system versions:
Operating system → ↓ Driver version |
Windows Server 2022 | Windows Server 2019 | Windows Server 2016 | Windows Server 2012 R2 | Windows Server 2012 | Windows Server 2008 R2 | Windows 11 | Windows 10 | Windows 8.1 | Windows 7 | Windows Vista SP2 |
---|---|---|---|---|---|---|---|---|---|---|---|
18.4 | Yes | Yes | Yes | Yes | Yes | ||||||
18.3 | Yes | Yes | Yes | Yes | Yes | Yes | |||||
18.2 | Yes | Yes | Yes | Yes | Yes | Yes | |||||
18.1 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
18.0 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
17.10 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
17.9 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
17.8 | Yes | Yes | Yes | Yes | Yes | Yes | |||||
17.7 | Yes | Yes | Yes | Yes | Yes | Yes | |||||
17.6 | Yes | Yes | Yes | Yes | Yes | Yes | |||||
17.5 | Yes | Yes | Yes | Yes | Yes | Yes | |||||
17.4 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
17.3 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
17.2 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
17.1 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
17.0 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
13.1 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||
13 | Yes | Yes | Yes | Yes | |||||||
11 | Yes | Yes | Yes | Yes |
Installing Microsoft ODBC Driver for SQL Server
The driver is installed when you run msodbcsql.msi
from one of the Downloads for Windows.
Note
For those who have Driver 17.1.0.1 or below installed, it is recommended that it be uninstalled manually prior to installing the newer version of the Driver.
Side-by-side with Native Client
The driver can be installed side-by-side with SQL Server Native Client. Major versions of the driver (11, 13, 17, 18) can all be installed side-by-side with each other, as well.
When you invoke msodbcsql.msi
, only the client components are installed by default. The client components are files that support running an application that was developed using the driver. To install the SDK components, specify ADDLOCAL=ALL
on the command line. Here's an example.
msiexec /i msodbcsql.msi ADDLOCAL=ALL
End-user license
Specify IACCEPTMSODBCSQLLICENSETERMS=YES
to accept the terms of the end-user license if you use the /passive
, /qn
, /qb
, or /qr
option to install. This option must be specified in all uppercase letters. Here's an example.
msiexec /quiet /passive /qn /i msodbcsql.msi IACCEPTMSODBCSQLLICENSETERMS=YES ADDLOCAL=ALL
Silent uninstall
The following example shows how to perform a silent uninstall.
msiexec /quiet /passive /qn /uninstall msodbcsql.msi
Indicate dependency
When an application uses the driver, the application should indicate that it depends on the driver through the install option APPGUID
. This indication enables the driver installer to report dependent applications before uninstalling. To specify a dependency on the driver, set the APPGUID
command-line parameter to your product code when silently installing the driver. A product code must be created when using Microsoft Installer to bundle your application setup program. Here's an example.
msiexec /i msodbcsql.msi APPGUID={ <Your dependent application's APPGUID> }
Command-line tools: sqlcmd.exe and bcp.exe
The bcp.exe
and sqlcmd.exe
tools for use with the driver can be downloaded at Microsoft Command Line Utilities 11 for SQL Server, Microsoft Command Line Utilities 13 for SQL Server, or Microsoft Command Line Utilities 13.1 for SQL Server. The driver is a prerequisite to install sqlcmd.exe
and bcp.exe
.
bcp.exe
and sqlcmd.exe
are installed in the 110\Tools
subfolder of %PROGRAMFILES%\Microsoft SQL Server\Client SDK\ODBC
for version 11, and 130\Tools
for 13 and 13.1.
An application that uses BCP functions must specify the driver from the same version, which shipped with the header file and library used to compile the application.
For example, when you compile an ODBC application with msodbcsql11.lib
and msodbcsql.h
, use DRIVER={ODBC Driver 11 for SQL Server}
in the connection string.
Components of the Microsoft ODBC Driver for SQL Server on Windows
The ODBC driver on Windows contains the following components:
Component | Description |
---|---|
msodbcsql18.dll ormsodbcsql17.dll ormsodbcsql13.dll ormsodbcsql11.dll |
The dynamic-link library (DLL) file that contains all of the driver's functionality. This file is installed in %SYSTEMROOT%\System32 . |
msodbcdiag18.dll ormsodbcdiag17.dll ormsodbcdiag13.dll ormsodbcdiag11.dll |
The dynamic-link library (DLL) file that contains the driver's diagnostics (tracing) interface. This file is installed in %SYSTEMROOT%\System32 . |
msodbcsqlr18.rll ormsodbcsqlr17.rll ormsodbcsqlr13.rll ormsodbcsqlr11.rll |
The accompanying resource file for the driver library. This file is installed in %SYSTEMROOT%\System32\1033 . |
s13ch_msodbcsql.chm ors11ch_msodbcsql.chm |
The Data Source Wizard help file that documents how to create a data source for the driver. This file is installed in %SYSTEMROOT%\System32\1033 NOTE: There's no chm file for ODBC Driver 17 and above. |
msodbcsql.h |
The header file that contains all of the new definitions needed to use the driver. Note: You can't reference msodbcsql.h and odbcss.h in the same program.msodbcsql.h for ODBC Driver 18 is installed in %PROGRAMFILES%\Microsoft SQL Server\Client SDK\ODBC\180\SDK .msodbcsql.h for ODBC Driver 17 is installed in %PROGRAMFILES%\Microsoft SQL Server\Client SDK\ODBC\170\SDK .msodbcsql.h for ODBC Driver 13 is installed in %PROGRAMFILES%\Microsoft SQL Server\Client SDK\ODBC\130\SDK .msodbcsql.h for ODBC Driver 11 is installed in %PROGRAMFILES%\Microsoft SQL Server\Client SDK\ODBC\110\SDK . |
msodbcsql18.lib ormsodbcsql17.lib ormsodbcsql13.lib ormsodbcsql11.lib |
The library file needed to call the bcp utility functions that are part of the driver. Note: If you reference this library file in your program, make sure that it's in your system path and in the system path of users that use the application. msodbcsql18.lib is installed in %PROGRAMFILES%\Microsoft SQL Server\Client SDK\ODBC\180\SDK .msodbcsql17.lib is installed in %PROGRAMFILES%\Microsoft SQL Server\Client SDK\ODBC\170\SDK .msodbcsql13.lib is installed in %PROGRAMFILES%\Microsoft SQL Server\Client SDK\ODBC\130\SDK .msodbcsql11.lib is installed in %PROGRAMFILES%\Microsoft SQL Server\Client SDK\ODBC\110\SDK . |