when una tipo generar from failed error dato convertir converting convert conversión conversion caracteres cadena sql-server guid case

sql-server - una - tipo de dato uniqueidentifier sql server



SQL Server: conversión de UniqueIdentifier a cadena en una declaración de caso (4)

Aquí es posible usar la función de conversión, pero 36 caracteres son suficientes para mantener el valor único del identificador:

convert(nvarchar(36), requestID) as requestID

Tenemos una tabla de registro que tiene una columna de mensaje que a veces tiene un seguimiento de pila de excepción. Tengo algunos criterios que determinan si el mensaje tiene esto. No queremos mostrarle estos mensajes al cliente, sino que tenemos un mensaje como:

Se produjo un error interno. Póngase en contacto con nosotros con el código de referencia xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

donde xxx, etc. es una columna guía en la tabla. Estoy escribiendo proc almacenado como este:

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 es un tipo de datos Guid en SQL Server y no se convierte en cadena aquí. He visto un código sobre cómo convertir un Guid en una cadena, pero tiene varias líneas y no creo que funcione en una declaración de caso. ¿Algunas ideas?



Después de mi opinión, uniquieidentifier / GUID no es un varchar ni un nvarchar sino un char (36). Por lo tanto yo uso

CAST(xyz AS char(36))


En lugar de Str(RequestID) , intente convert(varchar(38), RequestID)