ID do artigo: 139444 - Última revisão: quarta-feira, 23 de novembro de 2005 - Revisão: 4.2 Como remover linhas duplicadas de uma tabela no SQL Server
SumárioTabelas do Microsoft SQL Server nunca devem conter linhas duplicadas nem chaves primárias não-exclusivos. Para questões de brevidade, às vezes referirá a chaves primárias como "chave" ou "CP" neste artigo, mas isso irá sempre indicar "chave primária." PKs duplicados são uma violação de integridade de entidade e devem ser permitidos em um sistema relacional. SQL Server possui vários mecanismos para impor integridade de entidade, incluindo índices, restrições UNIQUE, restrições PRIMARY KEY e disparadores. Apesar de isso, duplicadas chaves primárias podem ocorrer em circunstâncias incomuns e, caso deve ser eliminados. Uma maneira que podem ocorrer é se PKs duplicados existem nos dados não-relacionais fora do SQL Server e os dados são importados enquanto CP exclusividade não está sendo aplicada. Outra maneira de que eles podem ocorrer é por meio de um erro de design de banco de dados, como não impor integridade de entidade em cada tabela. Com freqüência PKs duplicados são percebidos ao tentar criar um índice exclusivo, que será finalizado se chaves duplicadas forem encontradas. Essa mensagem é: Msg 1505, nível 16, estado 1 crie índice exclusivo interrompido na chave duplicada. Msg 1505, nível 16, estado 1 CREATE UNIQUE INDEX finalizado porque uma chave duplicada foi encontrada para nome do objeto ' %. * ls 'e nome de índice' %. * ls'. O valor de chave duplicado é % 1!. Mais InformaçõesNeste exemplo, usaremos a tabela a seguir com valores duplicados do CP. Nesta tabela, a chave primária é de duas colunas (col1, col2). Nós não pode criar um índice exclusivo ou a restrição PRIMARY KEY como duas linhas têm PKs duplicados. Este procedimento ilustra como identificar e remover as duplicatas. Recolher esta tabela
Se houver apenas alguns conjuntos de valores CP duplicados, o melhor procedimento é para excluí-las manualmente em uma base individual. Por exemplo: Antes de excluir as linhas, você deve verificar que a linha inteira é duplicada. Embora improvável, é possível que os valores de CP são duplicados, mas a linha como um todo não é. Um exemplo disso seria uma tabela com número da previdência social como chave primária, e cada um com dois diferentes pessoas (ou linhas) com o mesmo número, ter atributos exclusivos. Nesse caso qualquer mau funcionamento causado chave duplicada pode ter também causado válidos exclusivos dados sejam colocados na linha. Esses dados devem ser copiados e preservados para reconciliação de estudo e possível anteriores à exclusão de dados. Se houver muitos conjuntos distintos de valores de CP duplicados na tabela, pode ser muito demorado para removê-los individualmente. Nesse caso o procedimento a seguir pode ser usado:
A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 139444
(http://support.microsoft.com/kb/139444/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções deste artigo
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar para o início