Я хочу получить коллекцию ошибок, вызванных хранимой процедурой, из внешней хранимой процедуры. Есть ли способ получить это.
Образцы ниже. Я получаю первую ошибку 80125. Я также хотел бы получить информацию о второй 80054. Есть ли в sql server переменная коллекции или сервера (я знаю, как получить это из .Net)
BEGIN TRY
DECLARE @RC int
EXEC @RC= TestErrorProc
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
- дает следующее
80125 15 1 TestErrorProc 11 Пользовательская ошибка базы данных: процедура: PROCEDURENAME; Пользователь: ДБО; Рабочая станция: VENTURE - Устранение неоднозначных ошибок - Следующая ошибка была вызвана пятым потенциально недопустимым параметром
CREATE PROCEDURE [dbo].[TestErrorProc]
AS
DECLARE @intErr int, @intRows int, @strUser varchar(64), @strWks varchar(64)
DECLARE @strTraceMsg varchar(255)
DECLARE @intRet int
SELECT @strUser = USER_NAME(), @strWks = HOST_NAME()
SET @strTraceMsg = ' Row 1'
BEGIN
--Ambiguous Testing
RAISERROR( 80125, 15, 1, 'PROCEDURENAME', @strUser, @strWks, 'TABLENAME-Column information' )
RAISERROR( 80054, 15, 1, 'PROCEDURENAME', @strUser, @strWks, @strTraceMsg, 'Issue details - business Error' )
RETURN( -100 )
END