SQL Server Native Client 中的元数据发现

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 平台系统(PDW)

重要

SQL Server Native Client (SNAC) 未随附:

  • SQL Server 2022 (16.x) 及更高版本
  • SQL Server Management Studio 19 及更高版本

不建议在新应用程序开发工作中使用 SQL Server Native Client(SQLNCLI 或 SQLNCLI11)和旧版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)。

对于新项目,请使用以下驱动程序之一:

对于作为 SQL Server 数据库引擎组件(版本 2012 到 2019)随附的 SQLNCLI,请参阅此支持生命周期特例

SQL Server 2012 (11.x) 中的元数据发现改进允许 SQL Server Native Client 应用程序确保从执行查询返回的列或参数元数据与执行查询之前指定的元数据格式相同或兼容。 如果执行查询后返回的元数据与执行该查询之前指定的元数据格式不兼容,您将会收到错误。

在 bcp 和 ODBC 函数以及 IBCPSession 和 IBCPSession2 接口中,您现在可以指定延迟读取(延迟的元数据发现)以避免对查询输出操作执行元数据发现。 这样可以提高性能,并避免元数据发现失败。

如果在 SQL Server 2012(11.x)中使用 SQL Server Native Client 开发应用程序,但连接到低于 SQL Server 2012(11.x)的服务器版本,则元数据发现功能将对应于服务器的版本。

注解

SQL Server 2012 (11.x) 中已增强以下 bcp 函数,以提供改进的元数据发现:

使用bcp_setbulkmode指定元数据格式时,你还将看到性能改进。

bcp_control有一个新的 eOption 来控制 bcp_readfmt:BCPDELAYREADFMT 的行为。

SQL Server 2012 (11.x) 中增强了以下 ODBC 函数,以提供改进的元数据发现:

  • SQLNumResultCols

  • SQLDescribeCol

  • SQLNumParams

  • SQLDescribeParam

SQL Server 2012 (11.x) 中增强了以下 OLE DB 成员函数,以提供改进的元数据发现:

  • IColumnsInfo::GetColumnInfo

  • IColumnsRowset::GetColumnsRowset

  • ICommandWithParameters::GetParameterInfo(有关详细信息,请参阅 ICommandWithParameters

使用 IBCPSession::BCPSetBulkMode 指定元数据格式时,也会看到性能改进

由于在 SQL Server 2012(11.x)中添加了两个存储过程,因此 SQL Server Native Client 中的元数据发现可能得到改进:

  • sp_describe_first_result_set

  • sp_describe_undeclared_parameters

另请参阅

SQL Server Native Client 功能