Temos uma tabela de log que possui uma coluna de mensagem que às vezes possui um rastreamento de pilha de exceção. Eu tenho alguns critérios que determinam se a mensagem tem isso. Não queremos mostrar essas mensagens ao cliente, mas sim uma mensagem como:
Ocorreu um erro interno. Entre em contato conosco com o código de referência xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
onde xxx etc é uma coluna de guia na tabela. Estou escrevendo proc armazenado como este:
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
é um tipo de dados Guid no SQL Server e não converte em string aqui. Eu já vi algum código sobre como converter um Guid em string, mas é multi-alinhado e não acho que funcionaria em uma declaração de caso. Alguma ideia?