I'm trying to improve the error handling of a current system to produce more meaningful error messages. I have a "root" stored procedure that makes several calls to other nested stored procedures.
In the root sp, XACT_ABORT
is set to ON
but in the nested procedures, XACT_ABORT
is set to OFF
. I want to capture the specific errors from the lower level procedures rather than getting the root procedure's error.
I often see the error, uncommittable transaction is detected at the end of the batch, the transaction is being rolled back.
Is there any effect to having these "mixed" environments with the XACT_ABORTs
?
Also, if you have any suggestions for advanced error handling, that would be much appreciated. I think I would like to use sp_executesql
so I can pass parameters to get error output without having to modify all of the stored procedures and use RAISERROR
to invoke the parent procedure's CATCH
block.