SQL Server Native Client Features

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Important

The SQL Server Native Client (often abbreviated SNAC) has been removed from SQL Server 2022 (16.x) and SQL Server Management Studio 19 (SSMS). The SQL Server Native Client (SQLNCLI or SQLNCLI11) and the legacy Microsoft OLE DB Provider for SQL Server (SQLOLEDB) are not recommended for new application development. Switch to the new Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server or the latest Microsoft ODBC Driver for SQL Server going forward. For SQLNCLI that ships as a component of SQL Server Database Engine (versions 2012 through 2019), see this Support Lifecycle exception.

In addition to exposing features of the Windows (formerly Microsoft) Data Access Components (WDAC), SQL Server Native Client also implements many other features to expose SQL Server functionality.

In This Section

ODBC Driver Behavior Change When Handling Character Conversions
Discusses a change of behavior beginning in SQL Server 2012 Native Client.

Using Database Mirroring
Discusses how SQL Server Native Client supports the use of mirrored databases, which is the ability to keep a copy, or mirror, of a SQL Server database on a standby server.

Performing Asynchronous Operations
Discusses how SQL Server Native Client supports asynchronous operations, which is the ability to return immediately without blocking on the calling thread.

Using Multiple Active Result Sets (MARS)
Discusses how SQL Server Native Client supports multiple active result sets (MARS). MARS enables you to execute and receive multiple result sets using a single database connection

Using XML Data Types
Discusses how SQL Server Native Client supports the XML data type, which is a XML-based data type that can be used as a column type, variable type, parameter type, or function return type.

Using User-Defined Types
Discusses how SQL Server Native Client supports User-Defined Types (UDT), which extends the SQL type system by allowing you to store objects and custom data structures in a SQL Server database.

Using Large Value Types
Discusses how SQL Server Native Client supports large value data types, which are large object data types (LOB).

Changing Passwords Programmatically
Discusses how SQL Server Native Client supports the handling of expired passwords so that passwords can now be changed on the client without administrator involvement.

Working with Snapshot Isolation
Discusses how SQL Server Native Client supports the enhancement to row versioning that improves database performance by avoiding reader-writer blocking scenarios.

Working with Query Notifications
Discusses how SQL Server Native Client supports consumer notification on rowset modification.

Performing Bulk Copy Operations
Discusses how SQL Server Native Client supports bulk copy operations that allow the transfer of large amounts of data into or out of a SQL Server table or view.

Using Encryption Without Validation
Discusses how to use SQL Server Native Client to encrypt data sent to the server without validating the certificate.

Table-Valued Parameters (SQL Server Native Client)
Discusses SQL Server Native Client support for the table-valued parameters.

Large CLR User-Defined Types
Discusses support for large common language runtime (CLR) user-defined types (UDTs).

FILESTREAM Support
Discusses SQL Server Native Client support for the enhanced FILESTREAM feature.

Service Principal Name (SPN) Support in Client Connections
Discusses how support for service principal names (SPNs) has been extended to enable mutual authentication across all protocols.

Sparse Columns Support in SQL Server Native Client
Discusses SQL Server Native Client support for sparse columns.

Date and Time Improvements
Discusses support added to SQL Server Native Client for the date and time data types.

Metadata Discovery
Discusses metadata discovery improvements that were made in SQL Server 2012 (11.x).

UTF-16 Support in SQL Server Native Client 11.0
Discusses a behavior change introduced in SQL Server 2012 (11.x). If you supply a fixed-length buffer when binding a column result or output parameter and if the wchar character written into the buffer before the terminating character is a high surrogate code point of a surrogate pair, and if the next wchar character is a low surrogate code point, SQL Server Native Client will not add the high surrogate code point to the buffer.

SQL Server Native Client Support for High Availability, Disaster Recovery
Discusses how your application can be configured to take advantage of the high-availability, disaster recovery features added in SQL Server 2012 (11.x).

Accessing Diagnostic Information in the Extended Events Log
Discusses enhancements to SQL Server Native Client and data tracing that gives you access to diagnostic information in the ring buffer and XEvents log.

SQL Server Native Client Support for LocalDB
Discusses SQL Server Native Client support for the LocalDB feature.

See Also

SQL Server Native Client Programming
ODBC How-to Topics
OLE DB How-to Topics
Installing SQL Server Native Client