Wir haben eine Protokolltabelle mit einer Nachrichtenspalte, die manchmal einen Ausnahmestapel-Trace enthält. Ich habe einige Kriterien, die bestimmen, ob die Nachricht dies hat. Wir möchten diese Nachrichten nicht dem Kunden zeigen, sondern haben eine Nachricht wie:
Interner Fehler aufgetreten. Kontaktieren Sie uns mit dem Referenzcode xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Dabei ist xxx usw. eine Guid-Spalte in der Tabelle. Ich schreibe gespeicherten Prozess wie folgt:
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
ist ein Guid-Datentyp in SQL Server und wird hier nicht in Zeichenfolgen konvertiert. Ich habe Code zum Konvertieren eines Guid in einen String gesehen, aber er ist mehrzeilig und ich glaube nicht, dass er in einer case-Anweisung funktionieren würde. Irgendwelche Ideen?