una tabla que obtener modern_spanish_ci_as intercalacion ejemplos cambiar acentos sql-server tsql collation

tabla - Hacer una combinación en dos bases de datos con diferentes intercalaciones en SQL Server y obtener un error



obtener collation sql server (2)

Lo sé, sé que con lo que escribí en la pregunta no debería sorprenderme. Pero mi situación está trabajando lentamente en un sistema POS heredado y mi predecesor aparentemente no estaba al tanto de las UNIONES, así que cuando miré en una de las páginas internas que se carga durante 60 segundos veo que es bastante rápido, reescribo estas 8 consultas como una sola consulta con la situación JOINs. El problema es que además de no saber acerca de JOINs, también parece haber tenido un fetiche para múltiples bases de datos y sorpresa, sorpresa que usan colaciones diferentes. El hecho es que utilizamos todos los caracteres latinos "normales" que las personas de habla inglesa considerarían como el alfabeto completo y todo esto estará fuera de uso en unos pocos meses, por lo que todo lo que necesito es una tirita.

Para resumir, necesito algún tipo de método para realizar una sola intercalación, así puedo comparar dos campos de dos bases de datos.

El error exacto es:

No se puede resolver el conflicto de intercalación entre "SQL_Latin1_General_CP850_CI_AI" y "SQL_Latin1_General_CP1_CI_AS" en la operación igual.


Puede usar la cláusula de intercalación en una consulta (no puedo encontrar mi ejemplo en este momento, por lo que mi sintaxis probablemente sea incorrecta, espero que lo guíe en la dirección correcta)

select sone_field collate SQL_Latin1_General_CP850_CI_AI from table_1 inner join table_2 on (table_1.field collate SQL_Latin1_General_CP850_CI_AI = table_2.field) where whatever


Una forma general es forzar la intercalación a DATABASE_DEFAULT. Esto elimina el código duro del nombre de intercalación que podría cambiar.

También es útil para variables de tablas y tablas temporales, y donde no se conoce la intercalación del servidor (por ejemplo, usted es un proveedor que coloca su sistema en el servidor del cliente)

select sone_field collate DATABASE_DEFAULT from table_1 inner join table_2 on table_1.field collate DATABASE_DEFAULT = table_2.field where whatever