Поделиться через


Выполнение хранимых процедур — вызов хранимых процедур

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Драйвер ODBC SQL Server поддерживает выполнение хранимых процедур в виде удаленных хранимых процедур. Выполнение хранимых процедур как удаленных хранимых процедур позволяет драйверу и серверу повысить производительность при выполнении процедуры.

Когда инструкция SQL вызывает хранимую процедуру с помощью предложения escape-вызова ODBC CALL, драйвер SQL Server отправляет процедуру в SQL Server с помощью механизма вызова удаленной хранимой процедуры (RPC). Запросы RPC пропускают большую часть синтаксической проверки и обработки параметров инструкции в SQL Server; они быстрее, чем инструкция Transact-SQL EXECUTE.

Пример приложения, демонстрирующего эту функцию, см. в разделе "Коды возврата процесса" и "Выходные параметры" (ODBC).

Выполнение процедуры с помощью RPC

  1. Сконструируйте инструкцию SQL, использующую escape-последовательность ODBC CALL. В этой инструкции для каждого входного, входного-выходного и выходного параметров, а также для возвращаемого процедурой значения (при его наличии) используются маркеры параметров.

    {? = CALL procname (?,?)}  
    
  2. Вызовите SQLBindParameter для каждого параметра входа, входа-выхода и выхода, а также для значения, возвращаемого процедурой (если оно имеется).

  3. Выполните инструкцию с помощью SQLExecDirect.

Примечание.

Если приложение отправляет процедуру при помощи синтаксиса Transact-SQL EXECUTE (в отличие от escape-последовательности ODBC CALL), драйвер SQL Server ODBC передает этот вызов процедуры SQL Server в виде инструкции SQL, а не RPC. Кроме того, при использовании инструкции Transact-SQL EXECUTE выходные параметры не возвращаются.

См. также

Пакетная обработка вызовов хранимых процедур
Выполнение хранимых процедур
Вызов хранимой процедуры
Процедуры