Inquiridor
duvida com stored procedure

Pergunta
-
Galera é o seguinte estou com uma duvida em relação ao retorno de erro para aplicação com stored procedure. Quando eu coloco essa [sp]
@nome varchar(50), @quantidade int AS BEGIN BEGIN TRY SELECT 1/0; END TRY BEGIN CATCH SELECT ERROR_MESSAGE() AS RETORNO; END CATCH END
Ele não retorna erro para aplicação. Mas com essa
@nome varchar(50), @quantidade int AS SELECT 1/0; SELECT ERROR_MESSAGE() AS RETORNO; END
Ele retorna um erro para aplicação certinho. Minha duvida é o seguinte, existe possibilidade de usar o try catch e retornar um erro na aplicação, caso ocorra?
Valeu Galera!!!
__________________________________________________________________________________________________________ Atenciosamente, Mike Rodrigues De Lima.
Todas as Respostas
-
Amigo,
Você já deu uma olhada nesse link http://msdn.microsoft.com/en-us/library/ms175976.aspx.
Testei o código abaixo e tive o retorno esperado na aplicação:
-- Verify that the stored procedure does not already exist. IF OBJECT_ID ( 'usp_GetErrorInfo', 'P' ) IS NOT NULL DROP PROCEDURE usp_GetErrorInfo; GO -- Create procedure to retrieve error information. CREATE PROCEDURE usp_GetErrorInfo AS SELECT ERROR_NUMBER() AS ErrorNumber ,ERROR_SEVERITY() AS ErrorSeverity ,ERROR_STATE() AS ErrorState ,ERROR_PROCEDURE() AS ErrorProcedure ,ERROR_LINE() AS ErrorLine ,ERROR_MESSAGE() AS ErrorMessage; GO BEGIN TRY -- Generate divide-by-zero error. SELECT 1/0; END TRY BEGIN CATCH -- Execute error retrieval routine. EXECUTE usp_GetErrorInfo; END CATCH;
Outro exemplo:
CREATE PROCEDURE uspTryCatchTest AS BEGIN TRY SELECT 1/0 END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber ,ERROR_SEVERITY() AS ErrorSeverity ,ERROR_STATE() AS ErrorState ,ERROR_PROCEDURE() AS ErrorProcedure ,ERROR_LINE() AS ErrorLine ,ERROR_MESSAGE() AS ErrorMessage; END CATCH
Espero ter ajudado e boa sorte!
Não esqueça de marcar como útil uma resposta que te ajude.
"A diversão é a alma do negócio"
- Editado Lucas Vandor domingo, 23 de novembro de 2014 19:54
-
@Mike Lima,
Alguma novidade?
O post do colega @Lucas Vandor te ajudou? Não esqueça de marcar o post que te ajudou para fechar a thread. Assim deixamos o fórum mais organizado e podemos ajudar alguém que venha a ter um problema similar ao seu no futuro a encontrar a solução :).
Caso não tenha resolvido ainda, poste mais informações sobre ele :)
Até mais,
TP.Thiago Patrocinio
-
Bom dia Mike,
É possível utilizar o TRY...CATCH no SQL sim, com possibilidade de customizar o retorno do erro também. Veja o link abaixo.
http://smcode.com.br/TratErroSql.aspx
Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx