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.
Más entradas de este motor
- 3702Cannot drop database because it is currently in use (no se puede eliminar la base de datos porque está en uso)
- 15138The database principal owns a schema in the database, and cannot be dropped (el principal es propietario de un esquema de la base de datos y no puede eliminarse)
- 1934INSERT/UPDATE failed because the following SET options have incorrect settings (falló INSERT/UPDATE porque estas opciones SET tienen valores incorrectos)
- 4864Bulk load data conversion error (type mismatch or invalid character) (error de conversión de datos en la carga masiva (tipo no coincidente o carácter no válido))
- 916The server principal is not able to access the database under the current security context (el principal de servidor no puede acceder a la base de datos en el contexto de seguridad actual)