Estamos utilizando SQL Server 2012 con un identificador único y hemos notado que al hacer selecciones con caracteres adicionales agregados al final (por lo tanto, no con 36 caracteres), aún devuelve una coincidencia a un UUID.
Por ejemplo:
select * from some_table where uuid = '7DA26ECB-D599-4469-91D4-F9136EC0B4E8'
devuelve la fila con uuid 7DA26ECB-D599-4469-91D4-F9136EC0B4E8
.
Pero si corres:
select * from some_table where uuid = '7DA26ECB-D599-4469-91D4-F9136EC0B4E8EXTRACHARS'
También devuelve la fila con el uuid 7DA26ECB-D599-4469-91D4-F9136EC0B4E8
.
SQL Server parece ignorar todos los caracteres más allá de los 36 al hacer sus selecciones. ¿Es esto un error / característica o algo que se puede configurar?
No es un problema masivo ya que tenemos validación en la parte delantera para la longitud, pero no me parece un comportamiento correcto.
fuente