resolve collation conflict

19/01/2009 - 13:12 por Alhambra Eidos Desarrollo | Informe spam
Buenas.

Al ir a probar una aplicación ya existente, me he encontrado con el
siguiente mensaje devuelto por SQL Server: “Cannot resolve collation conflict
for equal to operation.”

El problema está en que hay una consulta mastodóntica por código que accede
a distintas bases de datos e incluso distintos servidores de SQL Server. Y
hay una base de datos donde la intercalación (collation) es distinta que el
resto. He intentado crear una nueva base de datos indicando la intercalación
correcta y restaurar de una copia de seguridad, pero al restaurar me vuelve a
poner el que tenía.

¿Hay alguna manera de cambiar el collation de una base de datos?

Me comentaron que una vez restaurada la base de datos, puedes cambiar el
collation en el campo o campos que están dando el problema a través del
diseño de la tabla.

El problema es que hay muchas tablas con muchos campos, y querría algo que
lo hiciera de toda la base de datos. He probado también con
“ALTER DATABASE miBBDD COLLATE miIntercalacion”.

Pero me dice que no se puede hacer, que antes debería ir campo por campo
cambiando como me indicaban.

Así que creo que no me va a quedar otra a no ser que me aporten otra
solución que desconozco, ojalá así sea.

Gracias y un saludo.


http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.com/churrosoft
http://www.setbb.com/putainformatic...opic.php?p„3
www.trabajobasura.com/solusoft

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
19/01/2009 - 14:08 | Informe spam
Puedes indicar la intercalación de la columna, sin tener que cambiar la de
la base de datos:

... FROM t1 INNER JOIN t2 ON t1.c1 COLLATE <nombre_intercalacion> = t2.c1
COLLATE <nombre_intercalacion>


Un saludo
-
www.navento.com
Servicios de Localización GPS


"Alhambra Eidos Desarrollo" wrote:

Buenas.

Al ir a probar una aplicación ya existente, me he encontrado con el
siguiente mensaje devuelto por SQL Server: “Cannot resolve collation conflict
for equal to operation.”

El problema está en que hay una consulta mastodóntica por código que accede
a distintas bases de datos e incluso distintos servidores de SQL Server. Y
hay una base de datos donde la intercalación (collation) es distinta que el
resto. He intentado crear una nueva base de datos indicando la intercalación
correcta y restaurar de una copia de seguridad, pero al restaurar me vuelve a
poner el que tenía.

¿Hay alguna manera de cambiar el collation de una base de datos?

Me comentaron que una vez restaurada la base de datos, puedes cambiar el
collation en el campo o campos que están dando el problema a través del
diseño de la tabla.

El problema es que hay muchas tablas con muchos campos, y querría algo que
lo hiciera de toda la base de datos. He probado también con
“ALTER DATABASE miBBDD COLLATE miIntercalacion”.

Pero me dice que no se puede hacer, que antes debería ir campo por campo
cambiando como me indicaban.

Así que creo que no me va a quedar otra a no ser que me aporten otra
solución que desconozco, ojalá así sea.

Gracias y un saludo.


http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.com/churrosoft
http://www.setbb.com/putainformatic...opic.php?p„3
www.trabajobasura.com/solusoft

Respuesta Responder a este mensaje
#2 Jose Mariano Alvarez
19/01/2009 - 15:05 | Informe spam
Si antes te funcionaba bien en el servidor anterior y ahora no, es probable
que el problema este relacionado con tablas temporales y la tempDB y tendras
que corregir el codigo como te dijo Carlos. En tucaso si ese es el problema
y si vienes de una migracion te sugeriria ver de reconstruir las tablas del
sistema para cambiar el collation para tener el mismo collation que el
servidor anterior y tener el mismo collation en todos los servidores y
evitar estos problemas.





Saludos

Ing. Jose Mariano Alvarez
SQLTotal Consulting


(Cambia los ceros por O y saca lo que sobra)


Este mensaje se proporciona tal como es, SIN GARANTIAS de ninguna clase. Por
favor tratar de indicar la versión de SQL y Service Pack. La inclusión de
(CREATE, INSERTS, etc.) para poder reproducir el problema también ayuda.








"Carlos Sacristan" wrote in
message news:

Puedes indicar la intercalación de la columna, sin tener que cambiar la de
la base de datos:

... FROM t1 INNER JOIN t2 ON t1.c1 COLLATE <nombre_intercalacion> = t2.c1
COLLATE <nombre_intercalacion>


Un saludo
-
www.navento.com
Servicios de Localización GPS


"Alhambra Eidos Desarrollo" wrote:

Buenas.

Al ir a probar una aplicación ya existente, me he encontrado con el
siguiente mensaje devuelto por SQL Server: “Cannot resolve collation
conflict
for equal to operation.”

El problema está en que hay una consulta mastodóntica por código que
accede
a distintas bases de datos e incluso distintos servidores de SQL Server.
Y
hay una base de datos donde la intercalación (collation) es distinta que
el
resto. He intentado crear una nueva base de datos indicando la
intercalación
correcta y restaurar de una copia de seguridad, pero al restaurar me
vuelve a
poner el que tenía.

¿Hay alguna manera de cambiar el collation de una base de datos?

Me comentaron que una vez restaurada la base de datos, puedes cambiar el
collation en el campo o campos que están dando el problema a través del
diseño de la tabla.

El problema es que hay muchas tablas con muchos campos, y querría algo
que
lo hiciera de toda la base de datos. He probado también con
“ALTER DATABASE miBBDD COLLATE miIntercalacion”.

Pero me dice que no se puede hacer, que antes debería ir campo por campo
cambiando como me indicaban.

Así que creo que no me va a quedar otra a no ser que me aporten otra
solución que desconozco, ojalá así sea.

Gracias y un saludo.


http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.com/churrosoft
http://www.setbb.com/putainformatic...opic.php?p„3
www.trabajobasura.com/solusoft

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida