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 as chaves primárias não exclusivas. Para brevity, irá por vezes referidas chaves primárias como "key" ou "PK" neste artigo, mas esta será sempre indicar "chave primária." PKs duplicados são uma violação de integridade de entidade e devem ser permitidos num sistema relacional. O SQL Server tem vários mecanismos para impor a integridade da entidade, incluindo índices, restrições UNIQUE, PRIMARY KEY restrições e accionadores. Apesar de, em circunstâncias pouco habituais, poderão ocorrer duplicadas chaves primárias e, caso que devem ser eliminadas. Uma forma que podem ocorrer é se existem PKs duplicados no não relacionais dados fora do SQL Server e importados os dados enquanto não está a ser imposta PK exclusividade. Outra forma que podem ocorrer é através de um erro de estrutura da base de dados, tais como não impor integridade de entidade em cada tabela. Muitas vezes PKs duplicados são reparados quando tenta criar um índice exclusivo, que vai abortar se forem encontradas chaves duplicadas. Esta mensagem é: Msg 1505, 16 de nível 1 estado crie índice exclusivo abortado na chave duplicado. Msg 1505, 16 de nível de estado 1 CREATE UNIQUE INDEX terminada porque foi encontrada uma chave duplicada para nome do objecto ' %. * ls % 'e nome de índice'. * 'ls. O valor de chave duplicado é % ls. Mais InformaçãoNeste exemplo, utilizaremos a tabela seguinte com valores PK duplicados. Nesta tabela de chave primária é duas colunas (col1, col2). -Não é possível criar um índice exclusivo ou restrição PRIMARY KEY uma vez que duas linhas têm PKs duplicados. Este procedimento ilustra a identificar e remover os duplicados. Reduzir esta tabela
Se existirem apenas alguns conjuntos de valores PK duplicados, o melhor procedimento é para eliminá-las manualmente numa base individual. Por exemplo: Antes de eliminar as linhas, deve verificar que a linha inteira é duplicada. Embora improvável, é possível que os valores de PK são duplicados, mas a linha como um todo não é. Um exemplo desta situação seria uma tabela com o número da segurança social como chave primária, e ter duas diferentes pessoas (ou linhas) com o mesmo número, cada um com atributos únicos. Neste caso o mau funcionamento provocado chave duplicada pode ter também causado válidos dados exclusivos seja colocada na linha. Estes dados devem ser copiados e mantém para reconciliação estudo e possível antes para eliminar os dados. Se existirem muitos conjuntos distintos de valores PK duplicados na tabela, poderá demorar demasiado tempo para removê-los individualmente. Neste caso pode ser utilizado o seguinte procedimento:
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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 de Artigos
|






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


Voltar ao topo