Arkangel Posted June 25, 2008 Report Share Posted June 25, 2008 Boas pessoal. Estava aqui a resolver uns exercícios em sql, onde tenho de descobrir o(s) erro(s). Mas encalhei aqui num. Conseguem saber o que está mal neste código? DECLARE @Current_Month int SELECT @Current_Month = CURRENT_MONTH FROM RD_PROPERTIES IF @@ERROR<>0 Begin EXEC SP_LOG_ERROR @@ERROR, 'Error while getting the CURRENT_MONTH' GOTO EndProc End RETURN (0) EndProc: RETURN (-1) Obrigado 😉. Link to comment Share on other sites More sharing options...
TheDark Posted June 25, 2008 Report Share Posted June 25, 2008 Assim à 1ª vista, isso não está dentro de uma função/stored procedure... Desaparecido. Link to comment Share on other sites More sharing options...
José Lopes Posted June 25, 2008 Report Share Posted June 25, 2008 toda programação que faço em sql é PLSQL...mas à primeira vista...esse if não devia ter que estar fechado? Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!! Link to comment Share on other sites More sharing options...
Arkangel Posted June 25, 2008 Author Report Share Posted June 25, 2008 Está complicado... isto é suposto correr em sql server 2000. Será que o @@error perde o valor após o EndProc a seguir ao primeiro Return? Link to comment Share on other sites More sharing options...
José Lopes Posted June 25, 2008 Report Share Posted June 25, 2008 A lógica..parece-me devia ser... Se ele encontrar erro...retornar X Caso contrário retornar Y... Parece-me que deveria ser essa a lógica da função... Mas tal como referi anteriormente o plsql tem muitas diferenças... e não percebo sequer nada do tratamento de erros do SQL Server.. Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!! Link to comment Share on other sites More sharing options...
Arkangel Posted June 26, 2008 Author Report Share Posted June 26, 2008 Ainda n tive oportunidade de testar isto no sql server 2000 pq n tive tempo, mas se @@error for diferente de zero, vai executar akilo k está dentro e passar para o endproc. Isso significaria que iria retornar 0... e 1. já k se for diferente de 0, retorna 0 pq n está dentro da clausula else... mas tb retorna 1 por causa da execução dentro do begin k dps apontará para o endproc. Se calhar é este o erro... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now