Хранимые процедуры— выполнение в собственном клиенте SQL Server

Применимо к:SQL ServerAzure SQL DatabaseAzure Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Внимание

Собственный клиент SQL Server (часто сокращенный SNAC) был удален из SQL Server 2022 (16.x) и SQL Server Management Studio 19 (SSMS). Поставщик OLE DB собственного клиента SQL Server (SQLNCLI или SQLNCLI11) и устаревший поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) не рекомендуется для новой разработки. Перейдите на новый драйвер Microsoft OLE DB (MSOLEDBSQL) для SQL Server .

При выполнении инструкций вызов хранимой процедуры в источнике данных (вместо выполнения или подготовки инструкции непосредственно в клиентском приложении) может обеспечить следующее:

  • высокую производительность;

  • низкие издержки сети;

  • лучшую согласованность;

  • большую точность;

  • дополнительные возможности.

Поставщик OLE DB собственного клиента SQL Server поддерживает три механизма, которые хранимые процедуры SQL Server используют для возврата данных:

  • Каждая инструкция SELECT в хранимой процедуре формирует результирующий набор.

  • Процедура может возвращать данные через выходные параметры.

  • Процедура может иметь целочисленный код возврата.

Приложение должно быть способно обработать все эти данные, возвращаемые хранимыми процедурами.

Разные поставщики OLE DB возвращают выходные параметры и значения на разных этапах во время обработки результатов. В случае поставщика OLE DB собственного клиента SQL Server выходные параметры и коды возврата не предоставляются до тех пор, пока потребитель не получил или отменил результирующие наборы, возвращаемые хранимой процедурой. Коды возврата и выходные параметры возвращаются сервером в последнем пакете потока табличных данных.

Поставщики используют свойство DBPROP_OUTPUTPARAMETERAVAILABILITY для сообщения о возвращении выходных параметров и возвращаемых значений. Это свойство доступно в наборе свойств DBPROPSET_DATASOURCEINFO.

Поставщик OLE DB собственного клиента SQL Server задает свойство DBPROP_OUTPUTPARAMETERAVAILABILITY DBPROPVAL_OA_ATROWRELEASE, чтобы указать, что коды возврата и выходные параметры не возвращаются, пока результирующий набор не будет обработан или освобожден.

См. также

Хранимые процедуры