DBAtlas · Atlas de operaciones de bases de datos

468: Cannot resolve the collation conflict

SQL Server

¿Qué significa?

En una operación (JOIN, UNION, comparación en WHERE o igualdad), se encontraron dos expresiones de cadena con collations distintas y SQL Server no pudo resolver qué collation aplicar. La operación se canceló por la ambigüedad.

¿Por qué ocurre?

Las columnas comparadas están definidas con collations distintas; se ve sobre todo cuando la collation de la base de datos difiere de la del servidor/tempdb, o cuando se combinan tablas de bases de datos con collations distintas. Combinar tablas temporales (collation de tempdb) con tablas permanentes es un desencadenante clásico.

Cómo solucionarlo

Especifique una collation explícita en la comparación: ... WHERE a.col = b.col COLLATE DATABASE_DEFAULT (o un nombre de collation concreto). Use COLLATE DATABASE_DEFAULT al crear columnas de tablas temporales. Como solución permanente, alinee las columnas/bases de datos afectadas con una única collation coherente. Si las discrepancias con tempdb son frecuentes, DATABASE_DEFAULT es la solución más práctica.

Abrir en DBAtlas →

Más entradas de este motor