Eliminar duplicados

¿Qué sentencia SQL puedo aplicar para eliminar todos los registros duplicados de una tabla?

1 Respuesta

Respuesta
1
Para eliminar duplicados primero tienes que haberlos localizado.
Si has utilizado el método que te comentaba en otra de tus preguntas y que a continuación te vuelvo a exponer:
Prueba a realizar una consulta de búsqueda de valores duplicados con el asistente de consultas, e indica que los campos por los que quieres localizar los duplicados son los que quieres poner como clave primaria.
Para hacerlo debes seleccionar consultas, nueva, y en el cuadro de selección, elegir asistente para búsqueda de duplicados. A continuación debes elegir la tabla en la que buscar, pasar a la derecha del formulario los campos que quieres poner como primary key y finalizar.
Veras que en la consulta te aparecen varios registros para cada duplicado, la forma de eliminarlos es seleccionarlos y pulsar la tecla suprimir, pero creo que esto es demasiado para tu problema, al considerar que tienes muchos registros en esa tabla.
Si quieres automatizar la eliminación, deberás recurrir al código VBA.
Deberás crear una función, en esta función debes crear un recordset con la sentencia SQL que deberás rescatar de la consulta de búsqueda de duplicados.
Una vez seteado el recordset, deberás hacer un recorrido por el, creando tantas variables como campos tengas en la definición de los duplicados.
En el recorrido del recordset debes emplear un bucle hasta el final de los registros: DO WHILE NOT Duplicados. EOF
En cada registro, deberás igualar las variables a los campos del registro activo, y mientras estas sean iguales al moverse a los siguientes registros, deberás eliminar el registro: Duplicados. delete
Una vez terminado el bucle, solo quedarán los registros únicos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas