UPDATE con varias tablas

Necesito actualizar una tabla, con valores de otra tabla con la misma estructura, pero en diferente base de datos.
O sea, que los registros que estén en las dos tablas, según el código, se tienen que actualizar en la primera.
Hasta ahora lo he hecho creando una imagen temporal en la base de datos local, pero ahora se ralentiza demasiado.
Respuesta
1
Quizá podrías haber actualizado directamente la tabla. Haces una consulta de toda la tabla 2ª. Con cada resultado que obtienes recorriendo esa primera consulta actualizas la 1ª tabla poniendo que la condición sea que el código que has obtenido sea el que haya en la 1ª.
Si no quieres hacer todas las actualizaciones, igualmente entonces deberías hacer una consulta de la 1ª tabla dentro del while que tendrías por la primera consulta y comparar, y en el caso de que fuesen iguales los códigos actualizar.
Lo que si no se, es si eso te ralentizará igual que lo que tu tienes...
En fin.. esa de todas formas serían las soluciones que yo probaría.
Ante todo muchísimas gracias!
Esta solución ya la tenia en un principio, pero debido al volumen de registros el 'while' me retrasaba mucho la operación, por eso luego probé con sentencias sql crear la imagen en mi base de datos local (siempre es más rapido una sentencia sql que un while), pero tampoco va una velocidad óptima. Un amigo me dio la solución, te la escribo por si te sirve algún día:
Update cli c, C:\Prog\BaseDatosExterna.cli c2 SET c.nombre = c2.nombre, c.telefono = c2.telefono, etc (todos los campos a actualizar) WHERE c.codigo = c2.codigo
BaseDatosExterna es el archivo 'BaseDatosExterna.mdb' donde tengo la tabal cli que contiene los valores actualizados. En lugar de poner la extensión de la base de datos, ponemos el nombre de la tabla a mirar.
Gracias por tu respuesta, es un placer poder ayudarnos entre nosotros.
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas