Usuário com melhor resposta
Stored Procedure ou Function

Pergunta
-
Ola, pessoal.
Tem uma situação no sistema que conseguiria resolver facilmente usando uma function.
Preciso retornar uma tabela, porém, a idéia é criar a Query dinamicamente
Só como exemplo:
-------------------------
CREATE function [dbo].[FUN_EstoqueDisponivel11](@CodProdutos int)
returns @Retorno table (Cod Int,
Descricao varchar(30))as
BEGINdeclare @query varchar(max);
SET @query = 'Select EstoqueAtual, PedidoVenda, PedidoCompra, ' +
declare @resultado table (Cod int, Descricao Varchar(50));
SET @query = 'Select Cod, Descricao from tab_produtos where Cod = ' + @CodProdutos;
return exec(@query)
' EstoqueAtual - PedidoVenda + PedidoCompra as Saldo ' +
' From (Select ' + @query + ') as x'
return execute @query
--Insert into @Retorno exec(@query)
END
-------------------------
Tentei de várias formas esse retorno... não tem jeito.
Seria para usar como uma tabela, com "Joins", etc em várias consultas.
Parece que não pode ter o Exec, dentro... Daí teria que ser uma Stored Procedure, correto?
Porém, como poderia usar o conjunto de resultado PROCEDURE como uma tabela, como seria a ideia com a Function?
Pois só consigo com o EXEC....
Qual seria uma boa prática nesse caso?
- Editado Julio Costi segunda-feira, 21 de janeiro de 2019 14:03
Respostas
-
Deleted
- Sugerido como Resposta Junior Galvão - MVPMVP quarta-feira, 23 de janeiro de 2019 17:20
- Marcado como Resposta Filipe B CastroModerator quinta-feira, 31 de janeiro de 2019 19:41
Todas as Respostas
-
Deleted
- Sugerido como Resposta Junior Galvão - MVPMVP quarta-feira, 23 de janeiro de 2019 17:20
- Marcado como Resposta Filipe B CastroModerator quinta-feira, 31 de janeiro de 2019 19:41
-
Boa tarde,
Por falta de retorno essa thread está encerrada.
Se necessário favor abrir uma nova thread.
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.