Hacer update de una tabla a otra en Visual Fox

Requiero de su colaboración con esto..
Tengo una base de datos con dos tablas y lo que requiero hacer es que en la tabla1 me actualice dos campos que están en la tabla2...
Tabla1
Campo1
Campo2 actualizado con campo2 de tabla2
Campo3 actualizado con campo4 de tabla2
Tabla2
Campo1
Campo2
Campo3
Campo4
La inquietud que tengo también es que la tabla1 contiene más de un millón de registros y la tabla2 tien casi 1millon de registros.. ¿Si es recomendable hacer un Update o es preferible hacer una vista con las dos tablas?

1 Respuesta

Respuesta
1
select campo2,camp3 from tabla1 into cursor prueba
update from tabla2 set campo2 = prueba.camp2 , campo4 = prueba.campo3 where condiciones
y eso es todo
pero bueno, es mas recomendable hacer un querry que junte las tablas y no tengas 2 estructuras sino solo uno
saludos
Saludos... pero si las tablas son tan grandes... creo una vista o un query... Lo ideal es que se ejecute de la manera más rápida y efectiva cuando el usuario final, ingrese una condion cualquiera de búsqueda, puede ser por identificación, numero de cuenta o por idped.
Es de aclarar que las tablas contienen cada una más de un millond e registros y están indexadas por los campos antes mencionados.
Quedo a la espera de sus amables comentarios
FDG
Mmm, si eso seria muchísimo mejor, ya que si es mucho más fácil ir a actualizar solo un registro que todos, jajaja pero bueno entonces tu decides yo te recomiendo eso que me mencionas con un where al final del update
Saludos, tengo este código .. pero no hace lo que necesito
if !used('prueba1')
   use "c:\convar\data\prueba1" in 6 alias prueba1
endif
select prueba1
if !used('prueba2')
   use "c:\convar\data\prueba2" in 7 alias prueba2
endif
select prueba2
UPDATE prueba2 SET tipoc WHERE prueba1.cuenta=PRUEBA2.cuenta
lo que hace este codigo es llenar todos los campos con un unico valor, y si en el codigo uno los campos llave que son cuenta.. no entiendo por que llena con el mismo valor toda la columna y no con cada datos de cada registros 
Ejemplo :
Tabla1( Donde estan los datos)
Columna 1<span style="white-space: pre;"> </span>| Columna2 | Columna3
Cuenta <span style="white-space: pre;"> </span>  Identifica<span style="white-space: pre;"> </span>Tipo<span style="white-space: pre;"> </span>Aprobacion <span style="white-space: pre;"> </span>
1010<span style="white-space: pre;"> </span>52635241<span style="white-space: pre;"> </span>f<span style="white-space: pre;"> </span>Credito
1020<span style="white-space: pre;"> </span>39258147<span style="white-space: pre;"> </span>f<span style="white-space: pre;"> </span>Debito
1030<span style="white-space: pre;"> </span>80258369<span style="white-space: pre;"> </span>m<span style="white-space: pre;"> </span>Credito
1040<span style="white-space: pre;"> </span>79369854<span style="white-space: pre;"> </span>m<span style="white-space: pre;"> </span>Credito
Tabla2 ( la que quiero actualizar)
Cuenta<span style="white-space: pre;"> </span>Tipo<span style="white-space: pre;"> </span> Fecha <span style="white-space: pre;"> </span>Aprobacion <span style="white-space: pre;"> </span>
1010 <span style="white-space: pre;"> </span>XX<span style="white-space: pre;"> </span>01/10/2009<span style="white-space: pre;"> </span>Si
1030<span style="white-space: pre;"> </span>XX<span style="white-space: pre;"> </span>25/03/2009<span style="white-space: pre;"> </span>No
1040<span style="white-space: pre;"> </span>XX<span style="white-space: pre;"> </span>01/02/2009<span style="white-space: pre;"> </span>Si
Donde XX es el valor que deseo actualizar osea que en la cuenta 1010 de la tabla 2 me debe poner "f", en la cuenta 1030 me debe colocar "m" y en la cuenta 1040 debe colobar "m"; pero el código me pone "f" en todos los campos
Ante todo mil gracias por su colaboración para hacer esta tarea de mi proyecto de mi trabajo
Frenando
UPDATE prueba2 SET tipoc WHERE prueba1.cuenta=PRUEBA2.cuenta
debe de ser
select prueba2
scan
    acambiar = prueba2.campoacambiar
    llaveprimaria = prueba2.cuenta
    update prueba2 set tipoc = acambiar where prueba1.cuenta = llaveprimaria
Endscan
Lamentablemente esto no me funciona... quedo a la espera de sus comentarios
Mmm mandame tu eestructura de tu tabla es decir los campos por ejemplo
Tabla -> Empleados
       Nombre c 50
       Edad N 2
y todo eso ...
Y también los campos con que tu quieras actualizar y como quieres que se actualice ...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas