SQL Server 2012: Utilizando Result Sets

      Nenhum comentário em SQL Server 2012: Utilizando Result Sets

Em alguns momentos é necessário utilizar uma stored procedure para retorno de valores.
Até aí, nenhuma novidade. Mas, às vezes é necessário especificar todos os campos que devem ser retornados pela stored procedure, inclusive com os respectivos datatypes.

Há uma implementação interessante que pode ser implementada e pode ser bastante útil, principalmente (e não somente) se sua chamada à stored procedure é utilizada dentro do seu projeto de integração (Integration Services).

Imagine se acrescentar no retorno novos campos dentro de sua stored procedure, ou mesmo com pequenas alterações nos tipos de dados dos campos retornados – sua stored procedure pode, mesmo “válida”, apresentar algum problema na execução, pela diferença do retorno quando você precisa de um retorno previsível.

Para “padronizar” o retorno desejado, é uma boa prática definir o “conjunto de resultados” ou melhor, o “result set“.

 

Exemplificando com um código muito simples:

 

Primeiro, a stored procedure, simples e normal – nada de diferente.


create procedure listaCliente
 (
 @patrimonio money
 ) as
 begin
 SELECT codigo, nome, telefone from cliente
 where patrimonioCliente > @patrimonio
 end


 

Segundo, a chamada à stored procedure, modo convencional – nada de diferente também.
Desta forma, o retorno é exatamente o mesmo dos campos relacionados no select.


exec listaCliente @patrimonio = 150000;


 

Agora, demonstro a utilização da mesma stored procedure com o result set:


exec listaCliente @patrimonio = 150000
 WITH RESULT SETS
 (
 (
 codigo integer;
 nome varchar(120);
 telefone varchar(20);
 )
 );


Bem, é simples e espero que a informação seja útil.

 

 

Deixe uma resposta