У нас есть таблица журналов, в которой есть столбец сообщений, который иногда имеет трассировку стека исключений. У меня есть некоторые критерии, которые определяют, имеет ли это сообщение сообщение. Мы не хотим показывать эти сообщения клиенту, но вместо этого имеем сообщение:SQL Server: преобразование UniqueIdentifier в строку в случае case
Внутренняя ошибка. Контакты США с эталонным кодом ХХХХХХХХХХХХ-XXXXXXXX-ХХХХХХХХХХХХ
где ххх и т.д. столбец справ в таблице. Я пишу хранимую процедуру, как это:
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 case. Есть идеи?
В качестве альтернативы, литая (RequestID в VARCHAR (50)) –
Какова основная разница между броском() и преобразования()? –
@RKSharma, который является идеальным вопросом для вас, чтобы спросить на stackoverflow.com или выполнить поиск на этом сайте, чтобы узнать, ответил ли кто-нибудь на него. – DJTripleThreat