Comparar tablas e insertar registros nuevos

28/09/2005 - 12:05 por Jose_A | Informe spam
Antes que nada aviso que soy novato y he buscado pero no he encontrado nada
que me sirva para unas pruebas que me gustaría hacer...
Tengo dos tablas en bases de datos diferentes en servidores diferentes; una
tabla se actualiza automáticamente pero la otra no. Para actualizarla lo que
hago es truncar la tabla de la que no se actualiza y copiar entera la que sí,
pero mientras dura el proceso (que puede ser de dos minutos...) si consulto
la tabla obviamente no obtengo nada.
Me gustaría saber cómo puedo comparar las tablas, seleccionar los registros
diferentes e insertar sólo los nuevos puesto que así supongo que además
tardaría mucho menos.
Si la pregunta es muy simple agradecería que alguien me sobre la pista de la
respuesta...

Gracias a todos.
 

Leer las respuestas

#1 Carlos Sacristán
28/09/2005 - 12:22 | Informe spam
Lo primero de todo es identificar lo que hace diferente un registro de
una tabla a otro (todos los campos, sólo un par de ellos, etc). Una vez
hecho esto, el siguiente ejemplo te puede servir:

PK la misma) es el campo1
SELECT origen.*
FROM tablaOrigen origen LEFT JOIN tablaDestino destino ON
origen.PK=destino.PK
WHERE origen.campo1 <> destino.campo1

La sentencia anterior te dará únicamente los registros que existen en
las dos tablas (sus PK son iguales) pero los valores son diferentes
(campo1). Para actualizar los valores en la tabla destino, la siguiente
sentencia valdría:

UPDATE tablaDestino SET campo1=origen.campo1
FROM tablaOrigen origen LEFT JOIN tablaDestino destino ON
origen.PK=destino.PK
WHERE origen.campo1 <> destino.campo1

Lo único que tienes que cambiar es el nombre de las tablas y de los
campos por los que tú tienes.


Un saludo

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

"Jose_A" escribió en el mensaje
news:
Antes que nada aviso que soy novato y he buscado pero no he encontrado


nada
que me sirva para unas pruebas que me gustaría hacer...
Tengo dos tablas en bases de datos diferentes en servidores diferentes;


una
tabla se actualiza automáticamente pero la otra no. Para actualizarla lo


que
hago es truncar la tabla de la que no se actualiza y copiar entera la que


sí,
pero mientras dura el proceso (que puede ser de dos minutos...) si


consulto
la tabla obviamente no obtengo nada.
Me gustaría saber cómo puedo comparar las tablas, seleccionar los


registros
diferentes e insertar sólo los nuevos puesto que así supongo que además
tardaría mucho menos.
Si la pregunta es muy simple agradecería que alguien me sobre la pista de


la
respuesta...

Gracias a todos.

Preguntas similares