Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Como excluir um registro duplicado quando a tabela não tem o campo PK?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidadeQuero saber uma forma de excluir uma linha que tem todos os itens duplicados, uma vez que eu inseri duas vezes o mesmo registro e se eu fizer um update vai atualizar as duas linhas e se eu deletar irá remover os dois registros, tem como remover somente um registro?

4 respostas

Olá!

Você pode usar TOP 1 no seu comando delete se você já sabe quais registros estão duplicados. Para a situação que você enviou, ficaria assim:

delete top(1)
from [Produtos]
where [CODIGO DO PRODUTO] = 1040107;

Porém, se você precisa descobrir quais registros estão duplicados, você pode utilizar uma consulta semelhante à esta:

select [CODIGO DO PRODUTO],count(1) "Quantidade de Ocorrências"
from [Produtos]
group by [CODIGO DO PRODUTO]
having count(1) > 1
order by count(1) desc;

Espero ter ajudado.

Esta aparecendo um erro próximo ao numero 1. Eu fiz uma nova tabela e repliquei os dados em duplicidade e nas duas tabelas está aparecendo o mesmo erro na hora de aplicar o delete. O que deve ser neste caso? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

solução!

Foi um erro de sintaxe...

O certo é que o "1" do "top 1" esteja entre parênteses (vou editar a resposta anterior). Ficaria assim:

delete top(1)
from [Produtos]
where [CODIGO DO PRODUTO] = 1040107;

Boa tarde deu certo aqui muito obrigado pela ajuda.