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.

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 Gijon
21/12/2005 - 18:43 | Informe spam
ok eso en un query funciona sin problemas ya lo verifique solo que...

cuando trabajo en mi reporteador Crystal Report me mada el error cuando
inserto algun campo de la VTablaB. Dentro de mi reporteador puedo sin
problemas agragasr las tablas de las BD's incluso hacer la relaciones -de
manera grafica- pero a al hora de agrergar campos en el reporte de una u otra
tabla me mada error


Sabras como solucionar esto bajo crystal repot 8.0... es que no puedo
elaborar mis reportes...!!


Gracias...

"Alejandro Mesa" wrote:

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.
Respuesta Responder a este mensaje
#3 Cesar Toledo
21/12/2005 - 18:44 | Informe spam
para resolver el problema de una vez por todos..

hay que sacar navs.. de todas las tablas.. de la base que quieres cambiar...
eliminas la base y la creas con la secuencia de intercalacion que quieres..
y vuelves a copiar los navs que sacaste antes..

Pero si no lo has hecho antes..no te lo recomiendo..
hay que ser bien cuidadoso..




"Gijon" escribió en el mensaje
news:
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.
Respuesta Responder a este mensaje
#4 Alejandro Mesa
21/12/2005 - 19:24 | Informe spam
Gijon,

Pudieras crear una vista en sql server para hacer esto y referenciar la
vista o funcion de usuario (eb caso de necesitar pasar parametros) desde tu
herramienta de reporte.

Lo otro seria tomarte el tiempo para cambiar la collation de la db, tabla,
columna.

- alter database
- alter table


AMB

"Gijon" wrote:

ok eso en un query funciona sin problemas ya lo verifique solo que...

cuando trabajo en mi reporteador Crystal Report me mada el error cuando
inserto algun campo de la VTablaB. Dentro de mi reporteador puedo sin
problemas agragasr las tablas de las BD's incluso hacer la relaciones -de
manera grafica- pero a al hora de agrergar campos en el reporte de una u otra
tabla me mada error


Sabras como solucionar esto bajo crystal repot 8.0... es que no puedo
elaborar mis reportes...!!


Gracias...

"Alejandro Mesa" wrote:

> 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.
Respuesta Responder a este mensaje
#5 Gijon
21/12/2005 - 19:59 | Informe spam
Oye y como haria un Navs.. perdona pero que es eso?

"Cesar Toledo" wrote:

para resolver el problema de una vez por todos..

hay que sacar navs.. de todas las tablas.. de la base que quieres cambiar...
eliminas la base y la creas con la secuencia de intercalacion que quieres..
y vuelves a copiar los navs que sacaste antes..

Pero si no lo has hecho antes..no te lo recomiendo..
hay que ser bien cuidadoso..




"Gijon" escribió en el mensaje
news:
> 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.



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida