Skip to content

Commit caf641c

Browse files
committed
Adding a driver feature matrix
1 parent 435679c commit caf641c

2 files changed

Lines changed: 97 additions & 0 deletions

File tree

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
---
2+
title: "Driver feature support matrix"
3+
description: "Learn which popular features are supported in drivers for SQL Server and where to find information about them."
4+
ms.custom: ""
5+
ms.date: 04/21/2020
6+
ms.prod: sql
7+
ms.technology: connectivity
8+
ms.topic: conceptual
9+
author: David-Engel
10+
ms.author: v-daenge
11+
ms.reviewer: v-daenge
12+
---
13+
# Driver feature support matrix for Microsoft SQL Server
14+
15+
If you're planning to use a feature in Microsoft SQL Server, it might not be available in all drivers. Some reasons a feature might not be in a particular driver include:
16+
17+
- The feature doesn't apply to the driver technology.
18+
- The feature is new and hasn't been implemented across all drivers yet.
19+
- The feature isn't in demand in a particular driver.
20+
- Other features are being implemented first.
21+
22+
We wish all drivers supported every feature and spend effort to ensure feature parity across drivers. However that isn't always possible. To help you choose the appropriate driver for your needs, here's a list of popular features and the drivers that implement them.
23+
24+
- [.NET](#table1)
25+
- [ODBC](#table2)
26+
- [OLE DB](#table2)
27+
- [JDBC](#table2)
28+
- [PHP](#table3)
29+
- [Node.js / JavaScript](#table3)
30+
- [Python](#table3)
31+
32+
| <a id="table1"></a>Feature | [Microsoft.<wbr>Data.<wbr>SqlClient (.NET Core)](ado-net/microsoft-ado-net-sql-server.md) | [Microsoft.<wbr>Data.<wbr>SqlClient (.NET Framework)](ado-net/microsoft-ado-net-sql-server.md) | System.<wbr>Data.<wbr>SqlClient (.NET Core) | [System.<wbr>Data.<wbr>SqlClient (.NET Framework)](/dotnet/framework/data/adonet/sql/) |
33+
| :-- | :-- | :-- | :-- | :-- |
34+
| [Always Encrypted](../relational-databases/security/encryption/always-encrypted-database-engine.md) | [Yes](ado-net/sql/sqlclient-support-always-encrypted.md) | [Yes](ado-net/sql/sqlclient-support-always-encrypted.md) | | [Yes](ado-net/sql/sqlclient-support-always-encrypted.md) |
35+
| [Always Encrypted with secure enclaves](../relational-databases/security/encryption/always-encrypted-enclaves.md) | [Yes](ado-net/sql/sqlclient-support-always-encrypted.md#enabling-always-encrypted-with-secure-enclaves) | [Yes](ado-net/sql/sqlclient-support-always-encrypted.md#enabling-always-encrypted-with-secure-enclaves) | | [Yes](ado-net/sql/sqlclient-support-always-encrypted.md#enabling-always-encrypted-with-secure-enclaves) |
36+
| [Azure Active Directory Access Token authentication](/azure/active-directory/develop/access-tokens) | [Yes](/dotnet/api/system.data.sqlclient.sqlconnection.accesstoken) | [Yes](/dotnet/api/microsoft.data.sqlclient.sqlconnection.accesstoken) | [Yes](/dotnet/api/microsoft.data.sqlclient.sqlconnection.accesstoken) | [Yes](/dotnet/api/microsoft.data.sqlclient.sqlconnection.accesstoken) |
37+
| [Azure Active Directory Password authentication](/azure/sql-database/sql-database-aad-authentication) | Yes | Yes | | Yes |
38+
| [Azure Active Directory Integrated authentication](/azure/sql-database/sql-database-aad-authentication) | | Yes | | Yes |
39+
| [Azure Active Directory Interactive (MFA) authentication](/azure/sql-database/sql-database-aad-authentication) | | Yes | | Yes |
40+
| [Azure Active Directory Managed Identity authentication](/azure/active-directory/managed-identities-azure-resources/overview) | | | | |
41+
| [Windows-Integrated authentication](/windows-server/security/windows-authentication/windows-authentication-overview) | [Yes](ado-net/sql/authentication-sql-server.md) | [Yes](ado-net/sql/authentication-sql-server.md) | [Yes](/dotnet/framework/data/adonet/sql/authentication-in-sql-server) | [Yes](/dotnet/framework/data/adonet/sql/authentication-in-sql-server) |
42+
| [Bulk Copy](../relational-databases/import-export/bulk-import-and-export-of-data-sql-server.md) | [Yes](ado-net/sql/bulk-copy-operations-sql-server.md) | [Yes](ado-net/sql/bulk-copy-operations-sql-server.md) | [Yes](/dotnet/framework/data/adonet/sql/bulk-copy-operations-in-sql-server) | [Yes](/dotnet/framework/data/adonet/sql/bulk-copy-operations-in-sql-server) |
43+
| [Data Sensitivity and Classification metadata](../relational-databases/security/sql-data-discovery-and-classification.md) | Yes | Yes | Yes | Yes |
44+
| [Multiple Active Result Sets (MARS)](../relational-databases/native-client/features/using-multiple-active-result-sets-mars.md) | [Yes](ado-net/sql/multiple-active-result-sets-mars.md) | [Yes](ado-net/sql/multiple-active-result-sets-mars.md) | [Yes](/dotnet/framework/data/adonet/sql/multiple-active-result-sets-mars) | [Yes](/dotnet/framework/data/adonet/sql/multiple-active-result-sets-mars) |
45+
| [Spatial Data Types](../relational-databases/spatial/spatial-data-sql-server.md) | | Yes | | Yes |
46+
| [Table-Valued Parameters (TVP)](../relational-databases/tables/use-table-valued-parameters-database-engine.md) | [Yes](ado-net/sql/table-valued-parameters.md) | [Yes](ado-net/sql/table-valued-parameters.md) | [Yes](/dotnet/framework/data/adonet/sql/table-valued-parameters) | [Yes](/dotnet/framework/data/adonet/sql/table-valued-parameters) |
47+
| [MultiSubnetFailover](../relational-databases/native-client/features/sql-server-native-client-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](ado-net/sql/sqlclient-support-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](ado-net/sql/sqlclient-support-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](/dotnet/api/system.data.sqlclient.sqlconnectionstringbuilder.multisubnetfailover?view=netcore-1.0) | [Yes](/dotnet/api/system.data.sqlclient.sqlconnectionstringbuilder.multisubnetfailover?view=netframework-4.8) |
48+
| [Transparent Network IP Resolution](odbc/using-transparent-network-ip-resolution.md) | | [Yes](/dotnet/api/microsoft.data.sqlclient.sqlconnection.connectionstring?view=sqlclient-dotnet-1.1) | | [Yes](/dotnet/api/system.data.sqlclient.sqlconnection.connectionstring?view=netframework-4.8) |
49+
| &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; |
50+
51+
| <a id="table2"></a>Feature | [ODBC Driver for SQL Server on Windows](odbc/microsoft-odbc-driver-for-sql-server.md) | [ODBC Driver for SQL Server on Linux](odbc/microsoft-odbc-driver-for-sql-server.md) | [JDBC Driver for SQL Server](jdbc/microsoft-jdbc-driver-for-sql-server.md) | [OLE DB Driver for SQL Server](oledb/oledb-driver-for-sql-server.md) |
52+
| :-- | :-- | :-- | :-- | :-- |
53+
| [Always Encrypted](../relational-databases/security/encryption/always-encrypted-database-engine.md) | [Yes](odbc/using-always-encrypted-with-the-odbc-driver.md) | [Yes](odbc/using-always-encrypted-with-the-odbc-driver.md) | [Yes](jdbc/using-always-encrypted-with-the-jdbc-driver.md) |
54+
| [Always Encrypted with secure enclaves](../relational-databases/security/encryption/always-encrypted-enclaves.md) | [Yes](odbc/using-always-encrypted-with-the-odbc-driver.md#enabling-always-encrypted-with-secure-enclaves) | [Yes](odbc/using-always-encrypted-with-the-odbc-driver.md#enabling-always-encrypted-with-secure-enclaves) | [Yes](jdbc/using-always-encrypted-with-the-jdbc-driver.md) | |
55+
| [Azure Active Directory Access Token authentication](/azure/active-directory/develop/access-tokens) | [Yes](odbc/using-azure-active-directory.md#authenticating-with-an-access-token) | [Yes](odbc/using-azure-active-directory.md#authenticating-with-an-access-token) | [Yes](jdbc/connecting-using-azure-active-directory-authentication.md#connecting-using-access-token) | [Yes](oledb/features/using-azure-active-directory.md) |
56+
| [Azure Active Directory Password authentication](/azure/sql-database/sql-database-aad-authentication) | [Yes](odbc/using-azure-active-directory.md) | [Yes](odbc/using-azure-active-directory.md)<sup>[1](#note1)</sup> | [Yes](jdbc/connecting-using-azure-active-directory-authentication.md) | [Yes](oledb/features/using-azure-active-directory.md) |
57+
| [Azure Active Directory Integrated authentication](/azure/sql-database/sql-database-aad-authentication) | [Yes](odbc/using-azure-active-directory.md) | | [Yes](jdbc/connecting-using-azure-active-directory-authentication.md) | [Yes](oledb/features/using-azure-active-directory.md) |
58+
| [Azure Active Directory Interactive (MFA) authentication](/azure/sql-database/sql-database-aad-authentication) | [Yes](odbc/using-azure-active-directory.md) | | | [Yes](oledb/features/using-azure-active-directory.md) |
59+
| [Azure Active Directory Managed Identity authentication](/azure/active-directory/managed-identities-azure-resources/overview) | [Yes](odbc/using-azure-active-directory.md) | [Yes](odbc/using-azure-active-directory.md) | [Yes](jdbc/connecting-using-azure-active-directory-authentication.md) | [Yes](oledb/features/using-azure-active-directory.md) |
60+
| [Windows-Integrated authentication](/windows-server/security/windows-authentication/windows-authentication-overview) | Yes | [Yes](odbc/linux-mac/using-integrated-authentication.md) | [Yes](jdbc/using-kerberos-integrated-authentication-to-connect-to-sql-server.md) | Yes |
61+
| [Bulk Copy](../relational-databases/import-export/bulk-import-and-export-of-data-sql-server.md) | [Yes](../relational-databases/native-client-odbc-extensions-bulk-copy-functions/sql-server-driver-extensions-bulk-copy-functions.md) | [Yes](../relational-databases/native-client-odbc-extensions-bulk-copy-functions/sql-server-driver-extensions-bulk-copy-functions.md) | [Yes](jdbc/using-bulk-copy-with-the-jdbc-driver.md) | [Yes](oledb/features/performing-bulk-copy-operations.md) |
62+
| [Data Discovery and Classification metadata](../relational-databases/security/sql-data-discovery-and-classification.md) | [Yes](odbc/data-classification.md) | [Yes](odbc/data-classification.md) | [Yes](jdbc/data-discovery-classification-sample.md) | |
63+
| [Multiple Active Result Sets (MARS)](../relational-databases/native-client/features/using-multiple-active-result-sets-mars.md) | [Yes](../relational-databases/native-client/features/using-multiple-active-result-sets-mars.md) | [Yes](../relational-databases/native-client/features/using-multiple-active-result-sets-mars.md) | | [Yes](oledb/features/using-multiple-active-result-sets-mars.md) |
64+
| [Spatial Data Types](../relational-databases/spatial/spatial-data-sql-server.md) | | | [Yes](jdbc/use-spatial-datatypes.md) | |
65+
| [Table-Valued Parameters (TVP)](../relational-databases/tables/use-table-valued-parameters-database-engine.md) | [Yes](../relational-databases/native-client-odbc-table-valued-parameters/table-valued-parameters-odbc.md) | [Yes](../relational-databases/native-client-odbc-table-valued-parameters/table-valued-parameters-odbc.md) | [Yes](jdbc/using-table-valued-parameters.md) | [Yes](oledb/ole-db-table-valued-parameters/table-valued-parameters-ole-db.md) |
66+
| [MultiSubnetFailover](../relational-databases/native-client/features/sql-server-native-client-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](../relational-databases/native-client/features/sql-server-native-client-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](../relational-databases/native-client/features/sql-server-native-client-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](jdbc/jdbc-driver-support-for-high-availability-disaster-recovery.md) | [Yes](oledb/features/oledb-driver-for-sql-server-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) |
67+
| [Transparent Network IP Resolution](odbc/using-transparent-network-ip-resolution.md) | [Yes](odbc/using-transparent-network-ip-resolution.md) | [Yes](odbc/using-transparent-network-ip-resolution.md) | [Yes](jdbc/setting-the-connection-properties.md) | |
68+
| &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; |
69+
70+
| <a id="table3"></a>Feature | [Drivers for PHP for SQL Server on Windows](php/microsoft-php-driver-for-sql-server.md) | [Drivers for PHP for SQL Server on Linux/<wbr>macOS](php/microsoft-php-driver-for-sql-server.md) | [Tedious (Node.js)](node-js/node-js-driver-for-sql-server.md) | [pyODBC (Python)](python/pyodbc/python-sql-driver-pyodbc.md) |
71+
| :-- | :-- | :-- | :-- | :-- |
72+
| [Always Encrypted](../relational-databases/security/encryption/always-encrypted-database-engine.md) | [Yes](php/using-always-encrypted-php-drivers.md) | [Yes](php/using-always-encrypted-php-drivers.md) | | Yes |
73+
| [Always Encrypted with secure enclaves](../relational-databases/security/encryption/always-encrypted-enclaves.md) | [Yes](php/always-encrypted-secure-enclaves.md) | [Yes](php/always-encrypted-secure-enclaves.md) | | Yes |
74+
| [Azure Active Directory Access Token authentication](/azure/active-directory/develop/access-tokens) | [Yes](php/azure-active-directory.md) | [Yes](php/azure-active-directory.md) | [Yes](https://tediousjs.github.io/tedious/api-connection.html#function_newConnection) | Yes |
75+
| [Azure Active Directory Password authentication](/azure/sql-database/sql-database-aad-authentication) | [Yes](php/azure-active-directory.md) | [Yes](php/azure-active-directory.md)<sup>[1](#note1)</sup> | [Yes](https://tediousjs.github.io/tedious/api-connection.html#function_newConnection) | Yes |
76+
| [Azure Active Directory Integrated authentication](/azure/sql-database/sql-database-aad-authentication) | | | | Yes<sup>[2](#note2)</sup> |
77+
| [Azure Active Directory Interactive (MFA) authentication](/azure/sql-database/sql-database-aad-authentication) | | | | Yes<sup>[2](#note2)</sup> |
78+
| [Azure Active Directory Managed Identity authentication](/azure/active-directory/managed-identities-azure-resources/overview) | [Yes](php/azure-active-directory.md) | [Yes](php/azure-active-directory.md) | [Yes](https://tediousjs.github.io/tedious/api-connection.html#function_newConnection) | Yes |
79+
| [Windows-Integrated authentication](/windows-server/security/windows-authentication/windows-authentication-overview) | [Yes](php/how-to-connect-using-windows-authentication.md) | [Yes](odbc/linux-mac/using-integrated-authentication.md) | | Yes |
80+
| [Bulk Copy](../relational-databases/import-export/bulk-import-and-export-of-data-sql-server.md) | | | [Yes](https://tediousjs.github.io/tedious/bulk-load.html) | |
81+
| [Data Discovery and Classification metadata](../relational-databases/security/sql-data-discovery-and-classification.md) | Yes | Yes | | |
82+
| [Multiple Active Result Sets (MARS)](../relational-databases/native-client/features/using-multiple-active-result-sets-mars.md) | [Yes](php/how-to-disable-multiple-active-resultsets-mars.md) | [Yes](php/how-to-disable-multiple-active-resultsets-mars.md) | | Yes |
83+
| [Spatial Data Types](../relational-databases/spatial/spatial-data-sql-server.md) | | | | |
84+
| [Table-Valued Parameters (TVP)](../relational-databases/tables/use-table-valued-parameters-database-engine.md) | | | [Yes](https://tediousjs.github.io/tedious/parameters.html) | Yes |
85+
| [MultiSubnetFailover](../relational-databases/native-client/features/sql-server-native-client-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](php/php-driver-for-sql-server-support-for-high-availability-disaster-recovery.md) | [Yes](php/php-driver-for-sql-server-support-for-high-availability-disaster-recovery.md) | | [Yes](../relational-databases/native-client/features/sql-server-native-client-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) |
86+
| [Transparent Network IP Resolution](odbc/using-transparent-network-ip-resolution.md) | [Yes](php/php-driver-for-sql-server-support-for-high-availability-disaster-recovery.md) | [Yes](php/php-driver-for-sql-server-support-for-high-availability-disaster-recovery.md) | | [Yes](odbc/using-transparent-network-ip-resolution.md) |
87+
| &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; |
88+
89+
<a id="note1"></a><sup>1</sup> Active Directory federated authentication without password hash synchronization or pass-through authentication isn't supported on Linux and macOS.
90+
91+
<a id="note2"></a><sup>2</sup> Only on Windows.
92+
93+
[!INCLUDE[get-help-options](../includes/paragraph-content/get-help-options.md)]
94+
95+
[!INCLUDE[contribute-to-content](../includes/paragraph-content/contribute-to-content.md)]

docs/connect/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
- name: SQL Server Drivers
88
href: ../connect/sql-connection-libraries.md
9+
- name: Driver Feature Support Matrix
10+
href: ../connect/driver-feature-matrix.md
911
- name: SQL Server Driver History
1012
href: ../connect/connect-history.md
1113
- name: SQL Data Developer

0 commit comments

Comments
 (0)