何时使用 SQL Server Native Client

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

重要

已从 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中删除SQL Server Native Client(通常缩写为 SNAC)。 不建议在新应用程序开发工作中使用 SQL Server Native Client(SQLNCLI 或 SQLNCLI11)和旧版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)。 请在此后切换为使用新版 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server 或最新版的 Microsoft OLE DB Driver for SQL Server。 对于作为 SQL Server 数据库引擎组件随附的 SQLNCLI (版本 2012 到 2019) ,请参阅此支持生命周期异常

SQL Server Native Client是一种可用于访问SQL Server数据库中的数据的技术。 有关不同数据访问技术的讨论,请参阅数据访问技术路线图

在决定是否使用 SQL Server Native Client 作为应用程序的数据访问技术时,应考虑几个因素。

对于新的应用程序,如果使用的是托管编程语言,如 Microsoft Visual C# 或 Visual Basic,且需要使用 SQL Server 中的新功能,那么应当使用用于 SQL Server 的 .NET Framework 数据访问接口,该接口是用于 .NET Framework 的一部分。

如果要开发基于 COM 的应用程序,并且需要访问 SQL Server 中引入的新功能,则应使用 SQL Server Native Client。 如果不需要使用 SQL Server 的新功能,则可以继续使用 Windows 数据访问组件 (WDAC)。

对于现有的 OLE DB 和 ODBC 应用程序,主要问题是是否需要访问 SQL Server 的新功能。 如果已有不需要使用 SQL Server 的新功能的成熟应用程序,那么可以继续使用 WDAC。 但是,如果确实需要访问这些新功能(如 xml 数据类型),则应使用 SQL Server Native Client。

SQL Server Native Client 和 MDAC 都支持使用行版本控制的已提交读取事务隔离,但只有SQL Server Native Client支持快照事务隔离。 (从编程的角度而言,具有行版本控制的已提交读事务隔离等同于已提交读事务。)

有关 SQL Server Native Client 与 MDAC 之间的差异的信息,请参阅将应用程序更新为从 MDAC SQL Server Native Client

另请参阅

SQL Server Native Client 编程
ODBC 操作指南主题
OLE DB 操作指南主题