administradores de banco de dados sabe que os erros ocasionais ocorrem, e registros duplicados são inseridos no banco de dados. A questão é um problema comum para os administradores de corrigir, mas a exclusão de registros de um servidor SQL é uma situação delicada. O administrador é dada a tarefa de exclusão de registros sem remover acidentalmente quaisquer outros dados, o que pode acontecer facilmente se a consulta não é construir corretamente. Saiba como excluir registros duplicados em SQL , preservando os registros originais . Coisas que você precisa
Microsoft SQL Server ( 2005 ou 2008)
Show Mais instruções
1
Open Enterprise Manager for SQL Server. Você precisa executar consultas para verificar o conteúdo duplicado. Ele também lhe dará uma idéia de quantos registros precisam ser excluídos . Consultas grandes podem exigir que você derrubar o servidor SQL para manutenção
2
digitar no console: . Select count ( *) from TheTableandselect distinta * de TheTableThe primeiro comando indica quantos registros total que você tem na tabela, eo segundo comando informa quantas duplicatas que você tem. No entanto, o segundo comando assume que os registros são completamente a mesma , ou seja, qualquer variação pequena não será incluído na tabela duplicada.
3
Copiar registros em uma tabela separada . Os seguintes comando copia apenas os registros que são distintos e deixa de fora qualquer duplicates.select distinta * em TempTablefrom thetable
4
Excluir duplicatas. A consulta a seguir exclui todas as duplicatas da tabela original , mas preserva uma cópia do registro original . A coluna " uniqueField " é o conjunto de índice de chave única ou primária na tabela de origem. A coluna " dupField " é o campo que está determinado a ser um gatilho para a duplicata. Por exemplo, se você tiver uma tabela de clientes com duplicatas , você pode determinar que mais de 1 registro com o mesmo número de Segurança Social é um field.delete duplicado TheTablewhere uniqueField não in ( select min ( uniqueField ) de TempTable T2where T2.dupField = MyTable.dupField )
5
Confira os resultados. Execute as mesmas perguntas do Passo 1 . A contagem total de tabela original deve ser a diferença entre o número contado antes da consulta de eliminação e o número apagado da tabela . Além disso, a execução da consulta distinta deve ter a mesma conta como a primeira consulta.