SQL Server: преобразование UniqueIdentifier в строку в операторе case

У нас есть таблица журнала, в которой есть столбец сообщений, который иногда имеет трассировку стека исключений. У меня есть несколько критериев, по которым определяется, есть ли это в сообщении. Мы не хотим показывать эти сообщения клиенту, вместо этого мы получаем сообщение вроде:

Произошла внутренняя ошибка. Свяжитесь с нами со справочным кодом xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

, где xxx и т. д. - это столбец guid в таблице. Я пишу хранимую процедуру следующим образом:

declare @exceptionCriteria nvarchar(50)
select @exceptionCriteria = '%<enter criteria etc>%'

select LogDate,
       case
       when Message like @exceptionCriteria
       then 'Internal Error Occured. Reference Code: ' + str(RequestID)
       else Message
       end
  from UpdateQueue

RequestID - это тип данных Guid в SQL Server и здесь не преобразуется в строку. Я видел код о том, как преобразовать Guid в строку,но он многострочный, и я не думаю, что он будет работать с оператором case. Есть идеи?

121
задан cwharris 8 November 2012 в 23:30
поделиться