Procedimentos Armazenados - A Correr em SQL Server Cliente Nativo

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse Analytics

Importante

O SQL Server Native Client (geralmente abreviado SNAC) foi removido do SQL Server 2022 (16.x) e do SQL Server Management Studio 19 (SSMS). O provedor OLE DB do SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o provedor Microsoft OLE DB herdado para SQL Server (SQLOLEDB) não são recomendados para novos desenvolvimentos. Mude para o novo Microsoft OLE DB Driver (MSOLEDBSQL) para SQL Server daqui em diante.

Ao executar instruções, chamar um procedimento armazenado na fonte de dados (em vez de executar ou preparar uma instrução diretamente na aplicação cliente) pode fornecer:

  • Desempenho superior.

  • Redução da sobrecarga da rede.

  • Melhor consistência.

  • Melhor precisão.

  • Funcionalidades adicionadas.

O fornecedor SQL Server Native Client OLE DB suporta três dos mecanismos que os procedimentos armazenados do SQL Server usam para devolver dados:

  • Cada instrução SELECT no procedimento gera um conjunto de resultados.

  • O procedimento pode devolver dados através de parâmetros de saída.

  • O procedimento pode ter um código de retorno inteiro.

A aplicação deve ser capaz de gerir todas estas saídas a partir de procedimentos armazenados.

Diferentes fornecedores OLE DB devolvem parâmetros de saída e valores de retorno em diferentes momentos durante o processamento dos resultados. No caso do fornecedor OLE DB do SQL Server Native Client, os parâmetros de saída e códigos de retorno só são fornecidos depois de o consumidor ter recuperado ou cancelado os conjuntos de resultados devolvidos pelo procedimento armazenado. Os códigos de retorno e os parâmetros de saída são devolvidos no último pacote TDS do servidor.

Os fornecedores usam a propriedade DBPROP_OUTPUTPARAMETERAVAILABILITY para reportar quando este retorna parâmetros de saída e valores de retorno. Esta propriedade está no conjunto de propriedades DBPROPSET_DATASOURCEINFO.

O fornecedor SQL Server Native Client OLE DB define a propriedade DBPROP_OUTPUTPARAMETERAVAILABILITY para DBPROPVAL_OA_ATROWRELEASE indicar que os códigos de retorno e parâmetros de saída não são devolvidos até que o conjunto de resultados seja processado ou libertado.