Tecnología

Inicio

Cómo eliminar duplicados SQL

administradores de bases saben que los errores ocasionales ocurren, y registros duplicados se insertan en la base de datos. El problema es un problema común para los administradores solucionar, pero la eliminación de registros desde un servidor SQL es una situación delicada. El administrador tiene la tarea de eliminar registros sin eliminar accidentalmente cualquier otro tipo de datos, que pueden ocurrir fácilmente si la consulta no se construye correctamente. Descubre cómo eliminar registros duplicados en SQL preservando al mismo tiempo los registros originales.

Instrucciones

1 Abra el Administrador corporativo de SQL Server. Es necesario para ejecutar consultas para comprobar si hay contenido duplicado. Sino que también le dará una idea de la cantidad de registros que ser eliminado. Consultas de gran tamaño pueden requerir que derribar el servidor SQL para el mantenimiento.

2 Escribir en la consola:
seleccionar conteo

() desde thetable
y
seleccione distinta de thetable
El 1 de comando le indica cuántos registros total que tiene en la tabla, y el segundo comando le indica cuántos duplicados que tiene. Sin embargo, el segundo comando se supone que los registros son totalmente iguales, es decir, cualquier pequeña variación no serán incluidos en la tabla duplicada.

3 Copiar registros en una tabla separada. sólo el siguiente comando copia los registros que son distintos y deja fuera los duplicados.
seleccione distinta *
en TempTable
de la mesa

4 Eliminar duplicados. La consulta siguiente elimina todos los duplicados de la tabla original, pero conserva 1 copia del registro original. La columna "uniqueField" es el índice de la clave principal o único establecido en la tabla original. La columna "dupField" es el campo que está determinado a ser un disparador para el duplicado. Por ejemplo, si usted tiene una tabla de clientes con duplicados, es posible determinar que más de 1 registro con el mismo número de la Seguridad Social es un campo duplicado.
eliminar de thetable
donde no uniqueField en
(Select min (uniqueField) desde la T2 TempTable
donde T2.dupField = MyTable.dupField)

5 Comprobar los resultados. Ejecutar las mismas consultas desde el Paso 1. El recuento total de la tabla original debe ser la diferencia entre el número contado antes de la consulta de eliminación y el número borrado de la tabla. Además, se ejecuta la consulta distinta debe tener el mismo número de como la consulta primero.

Consejos y advertencias

  • Siempre copia de seguridad de las tablas antes de la manipulación de los registros, en especial con las consultas de borrado.