如何解决SQL Server:在case语句中将UniqueIdentifier转换为字符串
|| 我们有一个日志表,该表的消息列有时具有异常堆栈跟踪。我有一些确定邮件是否包含此条件的条件。我们不想向客户显示这些消息,而是显示类似以下消息: 发生内部错误。联系我们 带有参考代码 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 其中xxx etc是表中的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语句中不起作用。有任何想法吗?
解决方法
我想我找到了答案:
convert(nvarchar(50),RequestID)
这是我找到此信息的链接:
http://msdn.microsoft.com/en-us/library/ms187928.aspx
, 可以在此处使用转换功能,但是36个字符足以容纳唯一的标识符值:
convert(nvarchar(36),requestID) as requestID
, 我认为,uniqueidentifier
/ GUID既不是varchar
也不是nvarchar
,而是is7ѭ。因此,我使用:
CAST(xyz AS char(36))
, 代替Str(RequestID)
,尝试convert(varchar(38),RequestID)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。