Probemas de Intercalacion en Bases de datos..

21/12/2005 - 16:57 por Gijon | Informe spam
Hola tengo dos bases de datos las cuales tengo que relacionar para elaborar
algunos informes en CRYSTAL REPORT 8.0. El problema es el siguiente al hacer
un query como el siguiente

select * from TablaA inner Join VTablaB on
TablaA.Campo1=VTablaB.Campo1

manda el error siguiente:

Servidor: mensaje 446, nivel 16, estado 9, línea 1
No se puede resolver el conflicto de intercalación para el operador equal to.

Ahora aclaro que la TablaA esta en la BD1 y la VTablaB es una vista que
lista todos los campos de una Tabla que esta en una BD2.

He investigado y el problema parece ser el tipo de INTERCALACION de la BD1 y
la BD2, para mi B1 su tipo de Intercalacion es: compatibility_52_409_30003 y
de la BD2 es Modern_Spanish_CI_AI... mis dudas:
1.- Como puedo hacer que ambas BD's sean del mismo tipo de intercalacion
2.- Al cambiar el tipo de intercalacion de alguna de las dos BD's hay riesgo
de perder informacion???



Gracias.
 

Leer las respuestas

#1 Alejandro Mesa
21/12/2005 - 17:46 | Informe spam
Gijon,

Por lo pronto te aconsejo que uses la clausula "collate" para que obligues a
sql server a usar la misma collation para ambas columnas durante la
comparacion. Puedes ver la collation que usan ambas columnas desde la vista
de sistema INFORMATION_SCHEMA.COLUMNS.

Ejemplo:

SELECT A.*, B.*
FROM T1 AS A INNER JOIN T2 AS B
ON A.C1 = B.C1 COLLATE SQL_Latin1_General_CP1_CI_AS
go


AMB

"Gijon" wrote:

Hola tengo dos bases de datos las cuales tengo que relacionar para elaborar
algunos informes en CRYSTAL REPORT 8.0. El problema es el siguiente al hacer
un query como el siguiente

select * from TablaA inner Join VTablaB on
TablaA.Campo1=VTablaB.Campo1

manda el error siguiente:

Servidor: mensaje 446, nivel 16, estado 9, línea 1
No se puede resolver el conflicto de intercalación para el operador equal to.

Ahora aclaro que la TablaA esta en la BD1 y la VTablaB es una vista que
lista todos los campos de una Tabla que esta en una BD2.

He investigado y el problema parece ser el tipo de INTERCALACION de la BD1 y
la BD2, para mi B1 su tipo de Intercalacion es: compatibility_52_409_30003 y
de la BD2 es Modern_Spanish_CI_AI... mis dudas:
1.- Como puedo hacer que ambas BD's sean del mismo tipo de intercalacion
2.- Al cambiar el tipo de intercalacion de alguna de las dos BD's hay riesgo
de perder informacion???



Gracias.

Preguntas similares