小编典典

SQL Server:在 case 语句中将 UniqueIdentifier 转换为字符串

all

我们有一个日志表,其中有一个消息列,有时会有异常堆栈跟踪。我有一些标准可以确定消息是否包含此内容。我们不想向客户显示这些消息,而是有如下消息:

发生内部错误。联系我们并提供参考代码 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 语句中工作。有任何想法吗?


阅读 71

收藏
2022-08-17

共1个答案

小编典典

我想我找到了答案:

convert(nvarchar(36), RequestID)

这是我找到此信息的链接:

http://msdn.microsoft.com/en-
us/library/ms187928.aspx

2022-08-17