Procedimientos almacenados: en ejecución en SQL Server Native Client

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Importante

SQL Server Native Client (a menudo abreviado SNAC) se ha quitado de SQL Server 2022 (16.x) y SQL Server Management Studio 19 (SSMS). Para nuevos trabajos de desarrollo, no se recomiendan ni el proveedor OLE DB de SQL Server Native Client (SQLNCLI o SQLNCLI11) ni el proveedor OLE DB de Microsoft para SQL Server (SQLOLEDB) heredado. Cambie al nuevo Controlador Microsoft OLE DB para SQL Server de ahora en adelante.

Cuando se ejecutan instrucciones, llamar a un procedimiento almacenado en el origen de datos (en lugar de ejecutar o preparar directamente una instrucción en la aplicación cliente) puede proporcionar lo siguiente:

  • Mayor rendimiento.

  • Sobrecarga de red reducida.

  • Mejor coherencia

  • Mayor exactitud

  • Función agregada.

El proveedor OLE DB de SQL Server Native Client admite tres de los mecanismos que SQL Server procedimientos almacenados usan para devolver datos:

  • Cada instrucción SELECT del procedimiento genera un conjunto de resultados.

  • El procedimiento puede devolver datos mediante parámetros de salida.

  • El procedimiento puede tener un código de retorno de tipo entero.

La aplicación debe ser capaz de manejar todos estos resultados de los procedimientos almacenados.

Diferentes proveedores OLE DB devuelven parámetros de salida y valores devueltos en diferentes momentos durante el procesamiento de los resultados. En el caso del proveedor OLE DB de SQL Server Native Client, los parámetros de salida y los códigos de retorno no se proporcionan hasta después de que el consumidor haya recuperado o cancelado los conjuntos de resultados devueltos por el procedimiento almacenado. Los códigos de retorno y los parámetros de salida se devuelven en el último paquete TDS del servidor.

Los proveedores usan la propiedad DBPROP_OUTPUTPARAMETERAVAILABILITY para notificar cuando devuelve parámetros de salida y valores de retorno. Esta propiedad se encuentra en el conjunto de propiedades DBPROPSET_DATASOURCEINFO.

El proveedor OLE DB de SQL Server Native Client establece la propiedad DBPROP_OUTPUTPARAMETERAVAILABILITY en DBPROPVAL_OA_ATROWRELEASE para indicar que los códigos de retorno y los parámetros de salida no se devuelven hasta que se procesa o libera el conjunto de resultados.

Consulte también

Procedimientos almacenados