Escribo este post porque en una tabla de costes, tengo que actualizar a cada X tiempo unos registros que provienen de otra tabla. Entonces pues lo que hago es filtrar los registros que quiero borrar con una consulta de eliminación y despues hago una consulta de anexar y restablezco los datos con los nuevos.
Para localizar los datos a borrar, uso un where especificando que es lo que quiero borrar.
La consulta es básica:
Código:
Pues esta consulta, para borrar unos 65.000 registros de un total de 300.000 me puede durar unos 20-30 minutos en hacerla. Sin embargo, a la hora de anexar de nuevo los datos tan sólo me dura 1-2 minutos.DELETE PARTES.IDPARTE, PARTES.TIPOPARTE, PARTES.FECHA, Month([FECHA]) AS MES, PARTES.SEMANA, PARTES.CODPARCELA, PARTES.HORASTRAGRICASA, PARTES.HORASPLUSTRAGRICASA, PARTES.HORASPLUSTRALQUILER, PARTES.HORASTRALQUILER, PARTES.HORASPEON, PARTES.HORASPODADOR, PARTES.HORASRECOLECCION, PARTES.SUELDOTOTALRECOLECCION, PARTES.OTROSGASTOS, PARTES.CODSUELDO, PARTES.CODTAREA, PARTES.PARTESEMANALCODTAREA, PARTES.PARTESEMANALOTRASTAREAS, PARTES.CODTRACTOR, PARTES.CODMAQUINARIA, PARTES.CALDO, PARTES.HERBICIDAIDPASE, PARTES.HERBICIDACODAPLICADOR, PARTES.COSECHACUADRILLACATEGORIA, PARTES.COSECHACAMPAÑA, PARTES.TRATAMIENTOSNUMTRATAMIENTO, PARTES.TRATAMIENTOSAPLICADOR, PARTES.TRATAMIENTOSPROBLEMAS, PARTES.ENCARGADO, PARTES.OBSERVACIONES FROM PARTES WHERE (((PARTES.TIPOPARTE)="GASTOS GENERALES - PARTES 2012" Or (PARTES.TIPOPARTE)="GASTOS GENERALES - CONTABILIDAD 2012"));
Uso Access como cliente y ms sqlserver 2000 como servidor.
¿Alguna sugerencia?
Muchas gracias de antemano.