Извлечение полей ошибок SQL Service Broker - PullRequest
0 голосов
/ 06 января 2019

Я создаю некоторую обработку ошибок для 'SQL/ServiceBroker/Error' MessageType в моих очередях Activation Stored Procedure. Пока у меня есть информация о том, как получить доступ к следующим полям исключений:

  • Код (например, номер ошибки)
  • Описание (например, сообщение об ошибке)

У меня проблемы с поиском информации о том, как получить доступ к (другим) «стандартным» полям ошибок из схемы «SQL / ServiceBroker / Error», например:

DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
DECLARE @ErrorProcedure VARCHAR(400);
DECLARE @ErrorLine INT;

... У меня проблемы с поиском информации.

Кто-нибудь знает ...

  • Где я могу получить информацию о доступе к этим полям из Схема «SQL / ServiceBroker / Ошибка»?

ПРИМЕР:
Для тех, кому нужно посмотреть код ...

---------------
-- HANDLE ERRORS: for Error MessageTypes
---------------
ELSE IF @MessageTypeName = N'http://schemas.microsoft.com/SQL/ServiceBroker/Error'
BEGIN

   -- GET ERROR: Alias Namespace
   WITH XMLNAMESPACES ('http://schemas.microsoft.com/SQL/ServiceBroker/Error' AS ssb)
   SELECT 
          @ErrorNumber = @MessageBody.value('(//ssb:Error/ssb:Code)[1]', 'INT'),
          @ErrorMessage = @MessageBody.value('(//ssb:Error/ssb:Description)[1]', 'NVARCHAR(MAX)');
          --@ErrorSeverity = ????,
          --@ErrorState = ????,
          --@ErrorProcedure = ????,
          --@ErrorLine = ????;

    -- CLOSE CONVERSATION
    END CONVERSATION @ConversationHandle;
END
...