Conflictos de intercalación

02/03/2005 - 16:39 por Juan Luis Pardo | Informe spam
Hola a todos,

Estoy intentando copiar unos procedimientos almacenados de una BD local a
una remota. Para ello creo los scripts y luego los cargo en el analizador de
consultas y los ejecuto. Tengo errores de "conflictos de intercalación" con
todos los SP que contienen el operador UNION.

¿Alguna idea? Gracias y un saludo,

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
02/03/2005 - 16:45 | Informe spam
Juan,

Puedes postear el error tal y como sale?


AMB

"Juan Luis Pardo" wrote:

Hola a todos,

Estoy intentando copiar unos procedimientos almacenados de una BD local a
una remota. Para ello creo los scripts y luego los cargo en el analizador de
consultas y los ejecuto. Tengo errores de "conflictos de intercalación" con
todos los SP que contienen el operador UNION.

¿Alguna idea? Gracias y un saludo,



Respuesta Responder a este mensaje
#2 Juan Luis Pardo
02/03/2005 - 17:04 | Informe spam
Hola Alejandro,
Te copio el mensaje:

Servidor: mensaje 446, nivel 16, estado 9, procedimiento
SpSelectUsuarioTipoUsuario, línea 20
No se puede resolver el conflicto de intercalación para el operador UNION.

Un saludo

"Alejandro Mesa" escribió en el
mensaje news:
Juan,

Puedes postear el error tal y como sale?


AMB

"Juan Luis Pardo" wrote:

Hola a todos,

Estoy intentando copiar unos procedimientos almacenados de una BD local a
una remota. Para ello creo los scripts y luego los cargo en el analizador
de
consultas y los ejecuto. Tengo errores de "conflictos de intercalación"
con
todos los SP que contienen el operador UNION.

¿Alguna idea? Gracias y un saludo,



Respuesta Responder a este mensaje
#3 Alejandro Mesa
02/03/2005 - 17:19 | Informe spam
Juan,

El operador UNION evalua cada fila de un select con todas las filas de otro
select campo por campo para elminar duplicados del resultado. De seguro
tienes algun campo que esta definido con diferente intercalacion en las
tablas accesadas en la union. Fijate en la estructura de cada tabla y fijate
cuales tienen diferente intercalacion. Puedes usar la clausula COLLATE para
hacer un cast de la expresion de caracter a una determinada intercalacion.
Chequea este ejemplo:

Ejemplo:

use northwind
go

create table t1 (
colA varchar(25) collate SQL_Latin1_General_CP1_CI_AS
)
go

create table t2 (
colA varchar(25) collate SQL_Latin1_General_CP1_CS_AS
)
go

insert into t1 values('microsoft')
insert into t1 values('Microsoft')
go

select colA from t1
union
select colA from t2
go

select colA from t1
union
select colA collate SQL_Latin1_General_CP1_CI_AS from t2
go

drop table t1, t2
go


AMB


"Juan Luis Pardo" wrote:

Hola Alejandro,
Te copio el mensaje:

Servidor: mensaje 446, nivel 16, estado 9, procedimiento
SpSelectUsuarioTipoUsuario, línea 20
No se puede resolver el conflicto de intercalación para el operador UNION.

Un saludo

"Alejandro Mesa" escribió en el
mensaje news:
> Juan,
>
> Puedes postear el error tal y como sale?
>
>
> AMB
>
> "Juan Luis Pardo" wrote:
>
>> Hola a todos,
>>
>> Estoy intentando copiar unos procedimientos almacenados de una BD local a
>> una remota. Para ello creo los scripts y luego los cargo en el analizador
>> de
>> consultas y los ejecuto. Tengo errores de "conflictos de intercalación"
>> con
>> todos los SP que contienen el operador UNION.
>>
>> ¿Alguna idea? Gracias y un saludo,
>>
>>
>>



Respuesta Responder a este mensaje
#4 Carlos Sacristán
02/03/2005 - 17:22 | Informe spam
Para poder hacer una comparación entre columnas con algún operador de
unión (LEFT JOIN, RIGHT JOIN, etc), tienen que tener la misma intercalacíon.
En tu caso esto no sucede, por lo que tendrás que forzar a que tengan la que
tú quieras por medio de la cláusula

<nombre de campo> COLLATE <nombre de intercalación válido>

Echa un vistazo a los BOL para su sintaxis correcta


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Luis Pardo" escribió en el mensaje
news:#
Hola Alejandro,
Te copio el mensaje:

Servidor: mensaje 446, nivel 16, estado 9, procedimiento
SpSelectUsuarioTipoUsuario, línea 20
No se puede resolver el conflicto de intercalación para el operador UNION.

Un saludo

"Alejandro Mesa" escribió en el
mensaje news:
> Juan,
>
> Puedes postear el error tal y como sale?
>
>
> AMB
>
> "Juan Luis Pardo" wrote:
>
>> Hola a todos,
>>
>> Estoy intentando copiar unos procedimientos almacenados de una BD local


a
>> una remota. Para ello creo los scripts y luego los cargo en el


analizador
>> de
>> consultas y los ejecuto. Tengo errores de "conflictos de intercalación"
>> con
>> todos los SP que contienen el operador UNION.
>>
>> ¿Alguna idea? Gracias y un saludo,
>>
>>
>>


Respuesta Responder a este mensaje
#5 Juan Luis Pardo
02/03/2005 - 17:54 | Informe spam
Ok, gracias a los dos... entonces, ahora me toca revisar campo por campo
todas las tablas implicadas en la Select y ver que tengan todos la misma
intercalación. Pero una pregunta: ¿por qué esos procedimientos almacenados
funcionan en mi BD local, y sólo fallan cuando intento copiarlos a otra BD
remota? (de hecho, los he copiado a OTRAS BD del MISMO servidor local, sin
problema)

Saludos,


"Juan Luis Pardo" escribió en el mensaje
news:%
Hola Alejandro,
Te copio el mensaje:

Servidor: mensaje 446, nivel 16, estado 9, procedimiento
SpSelectUsuarioTipoUsuario, línea 20
No se puede resolver el conflicto de intercalación para el operador UNION.

Un saludo

"Alejandro Mesa" escribió en el
mensaje news:
Juan,

Puedes postear el error tal y como sale?


AMB

"Juan Luis Pardo" wrote:

Hola a todos,

Estoy intentando copiar unos procedimientos almacenados de una BD local
a
una remota. Para ello creo los scripts y luego los cargo en el
analizador de
consultas y los ejecuto. Tengo errores de "conflictos de intercalación"
con
todos los SP que contienen el operador UNION.

¿Alguna idea? Gracias y un saludo,









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