Compartir vía


Ejecutar procedimientos almacenados: llamar a procedimientos almacenados

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

El controlador ODBC de SQL Server admite la ejecución de procedimientos almacenados como procedimientos almacenados remotos. La ejecución de un procedimiento almacenado como un procedimiento almacenado remoto permite al controlador y al servidor optimizar el rendimiento de la ejecución del procedimiento.

Cuando una instrucción SQL llama a un procedimiento almacenado mediante la cláusula de escape ODBC CALL, el controlador de SQL Server envía el procedimiento a SQL Server mediante el mecanismo de llamada a procedimiento almacenado remoto (RPC). Las solicitudes de RPC omiten gran parte del análisis de la instrucción y del procesamiento del parámetro en SQL Server, y es más rápido que usar la instrucción Transact-SQL EXECUTE.

Para obtener una aplicación de ejemplo que muestre esta característica, vea Procesar códigos de retorno y parámetros de salida (ODBC).

Para ejecutar un procedimiento como una RPC

  1. Cree una instrucción SQL que use la secuencia de escape ODBC CALL. La instrucción usa marcadores de parámetros para cada parámetro de entrada, de entrada/salida y de salida, así como para el valor devuelto por el procedimiento (si existe):

    {? = CALL procname (?,?)}  
    
  2. Llame a SQLBindParameter para cada parámetro de entrada, de entrada/salida y de salida, así como para el valor devuelto por el procedimiento (si existe).

  3. Ejecute la instrucción con SQLExecDirect.

Nota:

Si una aplicación envía un procedimiento con la sintaxis de Transact-SQL EXECUTE (en contraposición al flujo de escape ODBC CALL), el controlador ODBC de SQL Server pasa la llamada al procedimiento a SQL Server como una instrucción SQL en lugar de como una RPC. Además, los parámetros de salida no se devuelven si se usa la instrucción Transact-SQL EXECUTE.

Consulte también

Procesar por lotes las llamadas a procedimientos almacenados
Ejecutar procedimientos almacenados
Llamar a un procedimiento almacenado
Procedimientos