我们有一张日志表,其中有一个消息列,有时会包含异常堆栈追踪信息。我有一些条件来确定消息是否具有此内容。我们不希望向客户显示这些消息,而是显示以下消息:
发生内部错误。请联系我们,并提供参考代码 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
是在SQL Server中的Guid数据类型,在此处无法转换为字符串。我看过一些代码,可以将Guid转换为字符串,但它有多行且我不认为它适用于case语句。有任何想法吗?
nvarchar
,更别提nvarchar(50)
了。当将唯一标识符转换为文本值时,它被视为十六进制短划线36。 - user2864740cast(RequestID as char(36))
简化。 - Frank Tan