У нас есть таблица журнала, в которой есть столбец сообщений, который иногда имеет трассировку стека исключений. У меня есть несколько критериев, по которым определяется, есть ли это в сообщении. Мы не хотим показывать эти сообщения клиенту, вместо этого мы получаем сообщение вроде:
Произошла внутренняя ошибка. Свяжитесь с нами со справочным кодом 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. Есть идеи?