Home > Foro de SQL Server >

Debates de SQL Server > Cannot resolve collation conflict for equal to operation

Cannot resolve collation conflict for equal to operation

Escrito por Josem el 07/03/2007

Buenas tardes, he visto algunos posts algo relacionados con este error pero en mi caso es que cuando quiero actualizar datos de una tabla con los de otra. Estando ambas en diferentes bases de datos.

No termino de entender eso del collation.


Un saludo, y gracias por adelantado


Citar  |  
Ver mensaje      

Santiago Carela Peguero
Republica Dominicana...
Escrito por Santiago Carela Peguero el 08/03/2007

El Collation es la forma en que SQL server ve los datos.. Por ejemplo... Que utilize el alfabeto en español que distinga mayusculas de minusculas, que no distinga palabras con acento etc.. Existen varios tipos de collation, estas se eligen al momento de la instalación del servidor , tambien se puede definir a nivel de base de datos y de tabla, todo depende de tus necesidades.

Ej: CREATE DATABASE "SpanishDB" DATABASEPASSWORD '<MyPwd>' COLLATE Traditional_Spanish_CI_AS Aqui se crea una base de datos que utiliza el alfabeto en español no distingue mayuscula de minuscula osea "A=a" y distingue palabras con acentos "Visión <> Vision" La Recomendación es que verifiques si tus base de datos o tablas con las que estas trabajando tienen el mismo collation Saludos, Santiago Carela Rep. Dom

Citar  |  
Ver mensaje     

Escrito por Josem el 08/03/2007

Muchísimas gracias por la respuesta, entendí bien la explicación. Lo que no llegué a conseguir de momento es la forma de averiguar el collation con el q está creada una tabla. Hay alguna forma de averiguarlo?

Un saludo


Citar  |  
Ver mensaje     

Monica Rivera
Washington, Estados ...
Escrito por Monica Rivera el 10/03/2007

Collations se establecen al nivel de servidor (en el momento de la instalacion), de databases y de columnas.

Es decir, que las bases de datos y columnas se crean por defecto heredando el collation del servidor, pero es posible escoger un collation diferente al momento de crear una base de datos o una tabla.

Para ver el collation del servidor:
select SERVERPROPERTY('collation')

Para ver el collation de la base de datos:
SELECT DATABASEPROPERTYEX('Nombe de BD','Collation')

Para ver el collation de las columnas de una tabla:
exec sp_help 'Nombre de Tabla'

Saludos,

Monica


Citar  |  
Ver mensaje     

Escrito por Josem el 12/03/2007

Muchas gracias Mónica, de forma más rudimentaria y haciendo pruebas vi q si copias una tabla y pegas en el analizador de consultas tb te dice con q collation se ha hecho.

Un saludo


Citar  |  
Ver mensaje     

Escrito por Como Actuliza Mi Collactian el 26/04/2007

Hola y como puedo hacer para actualizar o cambiar el collaction de una tabla ya creada y con datos.

Saludos


Citar  |  
Ver mensaje     

Escrito por Yadira el 28/05/2007

Me sumo a la pregunta.....

Como puedo hacer para actualizar o cambiar el collaction de una tabla ya creada y con datos.

Ya comprobe que mis B. D tienen colletion diferentes,

Saludos


Citar  |  
Ver mensaje     

Escrito por Josem el 29/05/2007

Hola Yadira, desconozco la forma correcta de hacerlo pero te puedo dar una alternativa.

Vete a la base de datos donde están las tablas, botón derecho sobre la q te interesa y le das a copiar.

Vete despues al analizador de consultas, botón derecho pegar.

Ahí verás que collation tiene la tabla, empezará con CREATE TABLE,

Si quieres modificarla es con ALTER TABLE, pones el collation que quieres y así se actualiza. Eso creo. Suerte


Citar  |  
Ver mensaje     

Ronald
Perú, Perú
Escrito por Ronald el 22/05/2008
Gracias Santiago y Monica por la explicacion... Me ayudo a resolver mi pequeño problemas... GRACIAS!

Citar  |  
Ver mensaje     

Juan Carlos Salazar
Ecuador, Ecuador
Escrito por Juan Carlos Salazar el 6 de Enero

Saludos a los autores y pos, de este tema me parece muy interesante les agradezco mucho, tenía el mismo problema pero para no afectar la estructura origen, lo que resolví fué crear una tabla temporal y sobre esta actualizar el campo de la sigueinte manera
ALTER TABLE #TEMP_TABLACLIENTES ALTER COLUMN cli_numerodocumento VARCHAR(10) COLLATE SQL_Latin1_General_CP1_CI_AI NOT NULL

espero que les siva, un excelente año para todos


Citar  |  
Ver mensaje     

Escrito por Torres el 22 de Mayo

Hola, el tema de Collation en sql es muy extenso y sobre todo complicado de aplicar cuando ya estan en produccion tanto tus servidores como bases de datos...
Tengo ese problema sobre todo al momento de realizar consultas con datos de diferentes Bases de Datos, asi que les dejo un ejemplo de como hacer una consulta con bases de diferentes collation
Select * From Base1.Dbo.Tabla1 Where ClaveIn ( Select Clave COLLATE Traditional_Spanish_CI_AS From Base1.Dbo.Tabla1 Where Clave ="x" )
De esta forma ESTAMOS "FORZANDO" el collate del campo que necesitamos..

Espero sirva de algo..
saludos...


Citar  |  
Ver mensaje     


Responder


Quiero recibir alertas por email cuando haya mensajes nuevos en este debate

Al escribir en el debate:
  1. Repasa la ortografía y no escribas en formato SMS.
  2. Lee el texto dos veces antes de publicar.
  3. No escribas todo en mayúsculas o negritas.
 
Páginas internacionales: España  |  Italia  |  Francia  |  México  |  Alemania  |  Reino Unido  |  Argentina  |  Chile  |  Colombia  |  USA

Búsquedas frecuentes: como se llena un pagare calcular iva patrones vestidos problemas hormonales manualidades con papel periodico

Emagister cumple la Ley Orgánica 15/1999 de 13 de diciembre, de Protección de datos de Carácter Personal, y posee el código de inscripción nº 2002010053 del Registro General de la Agencia de Protección de Datos. Copyright © 1999/2000 - Grupo Intercom - Todos los derechos