Usuário com melhor resposta
Excluir Registros duplicados

Pergunta
-
Aqui na empresa,um cliente resolveu por conta própria importar planilhas para o SQL Server, porém ele acabou importando uma mesma planilha duas vezes.
Como excluir apenas os registros duplicados?
Os campos da tabela são ID, Name, ZIP, Phone, Phone_Prefix, email, city
Obrigado.
Abraços
Respostas
-
Olá Leandro!!
Bom, se você tiver um campo ID auto-incremento, fica mais simples. Poderia fazer algo assim:
Code SnippetDELETE
FROM TabelaWHERE
CampoID IN (SELECT
max (CampoID) FROM TabelaGROUP
BY Name, ZIP, Phone, Phone_Prefix, email, city)Agora, se não tiver campo ID, é melhor jogar os dados únicos numa tabela temporária, excluir os dados da origem, e incluir novamente. Veja:
Code SnippetSELECT
DISTINCT Name, ZIP, Phone, Phone_Prefix, email, cityINTO
#TabTempFROM
TabelaDELETE
FROM TabelaINSERT
INTO Tabela (Name, ZIP, Phone, Phone_Prefix, email, city)SELECT
Name, ZIP, Phone, Phone_Prefix, email, city FROM #TabTempObs.: FAÇA backup da tabela antes, rs.
Abraço
-
Todas as Respostas
-
isso já foi bastante discutido aqui no fórum Leandro..
segue um link com um exemplo do M. Colla..
http://forums.microsoft.com/msdn-br/ShowPost.aspx?PostID=1041988&SiteID=21
se não lhe satisfazer, procure por "registro duplicado" que vc irá encontrar vários posts..
Abraço!
-
Olá Leandro!!
Bom, se você tiver um campo ID auto-incremento, fica mais simples. Poderia fazer algo assim:
Code SnippetDELETE
FROM TabelaWHERE
CampoID IN (SELECT
max (CampoID) FROM TabelaGROUP
BY Name, ZIP, Phone, Phone_Prefix, email, city)Agora, se não tiver campo ID, é melhor jogar os dados únicos numa tabela temporária, excluir os dados da origem, e incluir novamente. Veja:
Code SnippetSELECT
DISTINCT Name, ZIP, Phone, Phone_Prefix, email, cityINTO
#TabTempFROM
TabelaDELETE
FROM TabelaINSERT
INTO Tabela (Name, ZIP, Phone, Phone_Prefix, email, city)SELECT
Name, ZIP, Phone, Phone_Prefix, email, city FROM #TabTempObs.: FAÇA backup da tabela antes, rs.
Abraço
-
-
-
-