存储过程 - 在 SQL Server Native Client 中运行

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

重要

已从 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中移除 SQL Server Native Client(通常缩写为 SNAC)。 不建议在新的开发工作中使用 SQL Server Native Client OLE DB 提供程序(SQLNCLI 或 SQLNCLI11)和旧版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)。 此后请切换到新的 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server

执行语句时,对数据源调用存储过程(而不是直接在客户端应用程序中执行或准备语句)可以:

  • 提高性能。

  • 降低网络开销。

  • 提供更好的一致性。

  • 提高准确性。

  • 增加功能。

SQL Server Native Client OLE DB 访问接口支持 SQL Server 存储过程用于返回数据的三种机制:

  • 过程中的每一条 SELECT 语句都生成一个结果集。

  • 过程可以通过输出参数返回数据。

  • 过程可以具有整数返回代码。

应用程序必须能够处理来自存储过程的所有这些输出。

在结果处理期间,不同的 OLE DB 访问接口返回输出参数和返回值的时间不同。 对于 SQL Server Native Client OLE DB 提供程序,在使用者检索或取消存储过程返回的结果集之后,才会提供输出参数和返回代码。 返回代码和输出参数在最后一个来自服务器的 TDS 数据包中返回。

访问接口返回输出参数和返回值时,使用 DBPROP_OUTPUTPARAMETERAVAILABILITY 属性进行报告。 此属性位于 DBPROPSET_DATASOURCEINFO 属性集中。

SQL Server Native Client OLE DB 访问接口将DBPROP_OUTPUTPARAMETERAVAILABILITY属性设置为DBPROPVAL_OA_ATROWRELEASE,以指示在处理或释放结果集之前不会返回返回代码和输出参数。

另请参阅

存储过程