Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
parâmetros de retorno em procedures:
temos duas formas de retornar parâmetros em procedures por output e pelo return:
exemplo de procedure com os dois tipos de retornos: no exemplo vamus fazer uma calculadora com uma váriavel de output que será a variável do resultado final e no return será retornado a váriavel global de erros @@Error para verificarmos se ocorreu algum erro na execução da procedure****
geração da procedure para testes:
CREATE PROCEDURE SP_CALC @OPERACAO TINYINT, -->1-ADICAO, 2-SUBTRACAO, 3-MULTIPLICAÇÃO, 4-DIVISÃO @VALOR1 INT, @VALOR2 INT, @RESULTADO INT OUTPUT AS IF @OPERACAO = 1 SET @RESULTADO = @VALOR1 + @VALOR2 ELSE IF @OPERACAO = 2 SET @RESULTADO = @VALOR1 - @VALOR2 ELSE IF @OPERACAO = 3 SET @RESULTADO = @VALOR1 * @VALOR2 ELSE IF @OPERACAO = 4 SET @RESULTADO = @VALOR1 / @VALOR2 ELSE BEGIN SELECT 'TIPO DE OPERAÇÃO NÃO ENCONTRADA.' SET @RESULTADO = 0 END RETURN @@Errorexecução da procedure de testes:
DECLARE @varErro int DECLARE @Retorno int --fazendo a adicao EXEC @varErro = SP_CALC 1, 10, 5, @Retorno OUTPUT SELECT @varErro AS RETORNO_Erro, @Retorno AS RETORNO_Resultado --fazendo a subtracao EXEC @varErro = SP_CALC 2, 10, 5, @Retorno OUTPUT SELECT @varErro AS RETORNO_Erro, @Retorno AS RETORNO_Resultado --fazendo uma divisão por zero pra forçar o erro --vai retornar o erro 8134 (Divide by zero error encountered.) EXEC @varErro = SP_CALC 4, 1, 0, @Retorno OUTPUT SELECT @varErro AS RETORNO_Erro, @Retorno AS RETORNO_ResultadoObs.1: o RETURN só aceita valores inteirosObs.2.: para melhor visualizar os retornos no exemplo de execução da procedure mude o modo de exibição do sql query analyser para "resultados em texto", o padrão dos resultados é em "grid", para mudar o resultado pra text no sql query analyser aperte Ctrl+T ou então vá ao menu "Query" e escolha a opção "Results in Text", para voltar os resultados para grid aperte Ctrl+D ou então vá ao menu "Query" e escolha a opção "Results in Grid"
AUTOR: "eriva_br"
Dúvidas, criticas, contribuições, correções e adições seram bem vindas.
Carregando comentários...