Mamy tabelę dziennika, która zawiera kolumnę komunikatów, która czasami zawiera ślad stosu wyjątków. Mam pewne kryteria, które określają, czy wiadomość ma to. Nie chcemy pokazywać tych wiadomości klientowi, ale zamiast tego mamy wiadomość taką jak:
Wystąpił błąd wewnętrzny. Skontaktuj się z nami, podając kod referencyjny xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
gdzie xxx itp. to kolumna guid w tabeli. Piszę przechowywane procy w ten sposób:
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
jest typem danych Guid w SQL Server i nie jest tutaj konwertowany na ciąg. Widziałem kod pokazujący, jak przekonwertować Guid na ciąg, ale jest on wieloliniowy i nie sądzę, aby zadziałał w instrukcji case. Jakieś pomysły?