我们有一个日志表,其中有一个消息列,有时会有异常堆栈跟踪。我有一些标准可以确定消息是否包含此内容。我们不想向客户显示这些消息,而是有如下消息:
发生内部错误。联系我们并提供参考代码 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 语句中工作。有任何想法吗?
RequestID
我想我找到了答案:
convert(nvarchar(36), RequestID)
这是我找到此信息的链接:
http://msdn.microsoft.com/en- us/library/ms187928.aspx