У меня есть этот фрагмент кода, который я нашел в сети в конце каждой из моих хранимых процедур:
ROLLBACK TRANSACTION
PRINT '-----START: ERROR DETAILS-----'
PRINT ERROR_NUMBER()
PRINT ERROR_SEVERITY()
PRINT ERROR_STATE()
PRINT ERROR_PROCEDURE()
PRINT ERROR_LINE()
PRINT ERROR_MESSAGE()
PRINT '-----END: ERROR DETAILS-----'
DECLARE @prmErrmsg NVARCHAR(4000);
DECLARE @prmErrSvr INT;
SELECT @prmErrmsg = ERROR_MESSAGE()
,@prmErrSvr = ERROR_SEVERITY();
INSERT INTO dbo.myErrors
([ErrorMessage]
,[ErrorSeverity]
,[DateCreated])
VALUES
(@prmErrmsg
,@prmErrSvr
,GetutcDate())
RAISERROR(@prmErrmsg,@prmErrSvr,1)
Запись записей в таблицу myErrors, но не запись сообщения об ошибке или серьезности ошибки.
Мой первый вопрос: почему?
Я полагаю, что это связано с серьезностью ошибки в определенном диапазоне.
Как я могу сказать ему, чтобы протоколировать подробные сообщения об ошибках ВСЕГДА, независимо от серьезности?