es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Conflicto de intercalación de SQL… ¿se puede forzar que solo 1 base de datos utilice un nivel predeterminado de sistema diferente?

Sé que hay varios hilos que discuten el conflicto de intercalación de SQL, pero creo que esto es un poco diferente.

Tengo un servidor SQL COMPARTIDO (2016) configurado según la recomendación de Microsoft de “Latin1GeneralCIAS” en lugar de la versión anterior “SQLLatin1GeneralCP1CIAS”. Aproximadamente la mitad de la base de datos en el servidor utiliza la nueva intercalación y la otra mitad utiliza la antigua. ¡Todo ha estado funcionando bien durante mucho tiempo!

Sin embargo, ahora estoy intentando alojar la base de datos de otro proveedor y por alguna razón se niega a funcionar. Su software se bloquea y se queja de no poder traducir las intercalaciones (o algo similar).

Según mi comprensión, las bases de datos individuales pueden especificar su propia intercalación (obviamente, dado que ya estamos prácticamente 50/50), sin embargo, cualquier tipo de tablas temporales y demás que cree una solución de software, que supongo que incluye consultas, se realizarán bajo la intercalación predeterminada del servidor.

Intenté cambiar la intercalación de esta nueva base de datos para que coincida con la del servidor, pero su software aún arrojó el mismo error. Así que en este momento, la sugerencia del proveedor es cambiar la intercalación predeterminada del servidor a la antigua. No puedo arriesgarme a romper todas las soluciones existentes que han estado funcionando bien durante años para adaptar este único producto.

Entonces, finalmente, mi pregunta es:

¿Existe algún truco o sistema alternativo que obligue a esta base de datos y a todo su acceso a utilizar “SQLLatin1GeneralCP1CIAS” en lugar de “Latin1GeneralCIAS”, incluso cuando la intercalación predeterminada de la instancia de SQL sigue siendo “Latin1GeneralCIAS”?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, no hay un truco para forzar una base de datos a utilizar una collation diferente a la que tiene establecida la instancia SQL por defecto. La collation de las tablas temporales y las consultas siempre se determinará según la collation por defecto del servidor.

    Una solución potencial a este problema sería crear una instancia separada de SQL Server con la collation heredada específicamente para alojar esta base de datos de terceros. Esto permitiría que la base de datos funcione correctamente sin afectar la collation de las bases de datos existentes en el SQL Server compartido.

    Alternativamente, podrías trabajar con el proveedor de terceros para ver si tienen alguna sugerencia para resolver el conflicto de collation o si pueden proporcionar una versión de su software compatible con la collation actual de tu SQL Server compartido.

Comments are closed.