Pero lo que no conozco son los campos claves, ya que al hacerlo de forma 
generica para varios ficheros, cada uno puede tener sus propias claves. 
Entiendo que en el NOT IN tengo que hacer la union por los campos claves. Lo 
ideal sería que existiera algo que en lugar de poner nombres de campos se 
pudiera poner "*", sin tener que estar numerandolos.
 


From: [email protected]
To: [email protected]
Subject: RE: Registros duplicados en SQL
Date: Fri, 25 Mar 2011 11:31:25 +0100








Si te da clave duplicada al insertar, entiendo que lo que puedes hacer es 
insertar sólo los que no estén.
 
Puedes mirarlo antes con un not in y los que no estén los insertas.
 


De: [email protected] 
[mailto:[email protected]] En nombre de Juan Carlos 
xxxxxxxxxxxxxxxxx
Enviado el: viernes, 25 de marzo de 2011 10:37
Para: [email protected]
Asunto: RE: Registros duplicados en SQL
 
He probado esto que me comentas,  y me sigue dando clave duplicada. El motivo 
es que los registros duplicados NO los tengo en tabla 1, sino que en tabla 2 ya 
hay algunos registros y estos pueden coincidir o no en clave con los de la 
tabla1. En caso de que coincidan, es cuando me da el error de clave duplicada y 
se para el proceso para el resto de registros de la instuccion INSERT. Yo lo 
que quiero es que siga continuando insertando para aquellos que no den clave 
duplicada.
 



From: [email protected]
To: [email protected]
Subject: RE: Registros duplicados en SQL
Date: Fri, 25 Mar 2011 09:30:29 +0100

Buenas, 
Para poder hacerlo sin las claves, independientemente de si las tablas tienen 
clave o no y para todos los campos, puedes hacerlo así: 
 
Insert into tabla2 
(select * from tabla1 union select * from tabla1)
 
Aunque parezca extraño, el unión descarta los repes.
 
Saludos !!!
 
José Luis
 
José Luis Moreno Rodríguez | Project manager

SC Trade Technologies
Caballero, 48 bajos 08014 Barcelona
T +34 902 48 11 10 | F +34 93 490 28 21 
M 679 193 144 
[email protected] | www.sctrade.es
 
 


De: [email protected] 
[mailto:[email protected]] En nombre de Juan Carlos 
xxxxxxxxxxxxxxxxx
Enviado el: viernes, 25 de marzo de 2011 8:39
Para: [email protected]
Asunto: RE: Registros duplicados en SQL
 
Me imagino que con "x" e "y" te estas refiriendo a los campos claves de uno y 
otro fichero. Mi problema es que no conozco cuáles son los campos claves de las 
tablas, porque quiero hacer de forma generica, que la instuccion me valga para 
cualquier fichero, sin tener que ir especificacndo las claves en la instuccion.
 



From: [email protected]
To: [email protected]
Subject: RE: Registros duplicados en SQL
Date: Thu, 24 Mar 2011 14:27:47 +0000

Ya probaste así?
 
Insert into tabla UNO
 Select ..... from tabla DOS
   Where Not exists (Select .... from tabla UNO where x = y)
 
Es solo una idea...
 
Saludos!!
 



From: [email protected]
To: [email protected]
Subject: Registros duplicados en SQL
Date: Thu, 24 Mar 2011 13:33:37 +0000

Hola a todos.
 
Necesitaría insertar unos registros con SQL en una tabla B a partir de otra 
tabla A. Pero me da error de registros duplicados porque algunos ya existen. Lo 
que yo quisiera es que aquellos que NO den clave duplicada insertarlos y los 
que den clave duplicada no insertarlos, pero que no se interrumpa el proceso 
del INSERT. El problema lo tengo en que quiero hacerlo de forma genérica que me 
valga para varios ficheros y cada uno de ellos pueden tener claves distintas, 
de forma que no puedo indicar en la sentencia SQL los campos claves. ¿Se os 
ocurre alguna forma de hacerlo?
 
Gracias de antemano.
 
Saludos.

____________________________________________________ �nete a Recursos AS400, 
nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 � Publicaciones 
Help400, S.L. 
____________________________________________________ �nete a Recursos AS400, 
nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 � Publicaciones 
Help400, S.L. 

____________________________________________________ �nete a Recursos AS400, 
nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 � Publicaciones 
Help400, S.L. 
____________________________________________________ �nete a Recursos AS400, 
nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 � Publicaciones 
Help400, S.L.                                       
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a