存储过程 - 在 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,以指示在处理或释放结果集之前不会返回返回代码和输出参数。