I have a stored prcedure . In the stored I wrote 3 SQL statements, one is OK but 2 other statements have error as:
1. Invalid column name 'F2'
2. Invalid object name '##_152008049'.
I put the stored inside try block and catch error in catch block as the following. But I always catch only the first error : invalid column name F2 . How about the second statement?
How can I catch all the errors when I put the stored in try block. Now I don't want to add try..catch inside the store for each statement.
Begin try
exec mystored
End try
begin catch
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
You are only getting the first one, because when you encounter the first error, it will fall through to the catch block. Any statements after the error don't even get executed.|||Not all errors are of the same kind, there is a difference between statement abort and batch abort errors. But as the previous poster already said, there is no way to return to the next statement after the catch block was handled.
HTH, Jens Suessmeyer.
http://www.sqlserver2005.de
No comments:
Post a Comment