SQL Server - Error de trasaccion

 
Vista:

Error de trasaccion

Publicado por eduardo (5 intervenciones) el 12/11/2015 17:56:11
hola realice una importacion de datos y al ejcutar la BD en sql sale este erro

Mens. 468, Nivel 16, Estado 9, Línea 6
No se puede resolver el conflicto de intercalación entre "SQL_AltDiction_Pref_CP850_CI_AS" y "SQL_Latin1_General_CP1_CI_AS" de la operación equal to.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Error de trasaccion

Publicado por Isaias (4558 intervenciones) el 12/11/2015 18:39:14
¿y porque dices que es error de TRANSACCION?

Tu base tiene un COLLATE SQL_AltDiction_Pref_CP850_CI_AS y el servidor (la instancia) tiene SQL_Latin1_General_CP1_CI_AS, por lo que tus comparaciones de IGUAL (=), debes modificarlas agregandoles el correspondiente COLLATE.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

te te envio la consulta y pongo COLLATE y sale error

Publicado por eduardo (5 intervenciones) el 12/11/2015 18:58:46
S

ELECT xx1, count(xx1)
FROM
(SELECT A.ate_disa, A.ate_lote, A.ate_numregate, ate_ideess, (ate_loteafiins+A.ate_numregafiins) as xx1
FROM I_Atencion A INNER JOIN PARTOS9 P ON A.ate_numregafiins = P.ate_numregafiins
INNER JOIN I_AtencionSmi S ON A.ate_Idnumreg=S.asmi_numregate
WHERE A.ate_idServicio = '009' and S.asmi_codsmi = '300' and A.ate_fecatencion between DATEADD(DAY,-(40*7),P.ate_fecatencion) and P.ate_fecatencion) AS CPN
GROUP BY xx1
GO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

te te envio la consulta y pongo COLLATE y sale error

Publicado por Isaias (4558 intervenciones) el 12/11/2015 23:05:47
¿And?, que con ese query
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

te te envio la consulta y pongo COLLATE y sale error

Publicado por eduardo (5 intervenciones) el 12/11/2015 23:12:07
una parte de la base, ahi la base importada es PARTOS9
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

te te envio la consulta y pongo COLLATE y sale error

Publicado por Isaias (4558 intervenciones) el 12/11/2015 23:41:23
De acuerdo, ¿pero cual es tu consulta?, ya te dije donde esta el problema, lo tienes en los COLLATE.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

te te envio la consulta y pongo COLLATE y sale error

Publicado por eduardo (5 intervenciones) el 13/11/2015 14:18:28
Hola Elias
te comento que algunas sentencias no conosco bien, y como usar el COLLATE, la consulta trata de sacar indormacion de una data (PARTOS) cada mes, extraida del sql y luego lo importamos para sacar una consulta mensual, esta consulta pide controles prenatales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

te te envio la consulta y pongo COLLATE y sale error

Publicado por Isaias (4558 intervenciones) el 13/11/2015 20:45:33
No soy ELIAS, soy ISAIAS

No se cual sea tu nivel en SQL Server, pero el COLLATE es un codigo de intercambio de caracteres, ¿Y para que sirve?

Simple, imaginate que los JAPONESES, CHINOS, MALASIOS, INDUES, etc, deseen subir informacion a SQL Server, pues deben tener codigo que interprete sus letras, ¿cierto?

Entonces

Si tu base tiene un COLLATE y tu servidor tiene OTRO COLLATE, cuando hagas un QUERY que compare TEXTOS y los COLLATE, no sean los mismos, te mandara el mensaje de error que tienes.

¿Como resolverlo?

WHERE mycampo <collate x> = myotrocampo <collate z>

Para saber mas

http://www.guillesql.es/Articulos/SQLServerFAQ_Intercalacion_Cambiar_Collation.aspx
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Gracias por el aporte

Publicado por eduardo (5 intervenciones) el 16/11/2015 17:19:15
Hola Elias
Agradecerle, me sirvio mucho y ya esta resuelto el problema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar