Les administrateurs de bases sait que des erreurs occasionnelles se produisent, et des enregistrements en double sont insérées dans la base de données . Le problème est un problème fréquent pour les administrateurs à fixer , mais la suppression d'enregistrements à partir d'un serveur SQL est une situation délicate. L'administrateur est confiée la tâche de suppression d'enregistrements sans avoir à retirer accidentellement d'autres données , ce qui peut se produire facilement si la requête n'est pas construit correctement . Apprenez comment supprimer les doublons dans SQL tout en préservant les documents originaux. Choses que vous devez
Microsoft SQL Server ( 2005 ou 2008 )
Voir Plus Instructions
1
Open Enterprise Manager pour SQL Server. Vous devez exécuter des requêtes pour vérifier le duplicate content . Il vous donnera aussi une idée de combien d'enregistrements doivent être supprimés . Les grandes questions peuvent vous obliger à faire tomber le serveur SQL pour l'entretien
2
taper dans la console: . SELECT COUNT (*) à partir de TheTableandselect distinct * à partir de TheTableThe 1ère commande vous indique combien d' enregistrements que vous avez dans le tableau, et la 2ème commande vous indique le nombre de copies que vous avez. Toutefois, la 2ème commande suppose que les dossiers sont complètement les mêmes, ce qui signifie une faible variance ne sera pas inclus dans le tableau en double.
3 dossiers de copie
dans un tableau distinct. Les copies de commandes suivantes uniquement les enregistrements qui sont distincts et laisse toute duplicates.select distinct * en TempTablefrom LaTable
4
supprimer les doublons . Le 1 copie de l'enregistrement original requête suivante supprime tous les doublons de la table d'origine , mais il préserve . La colonne " uniqueField " est la clé primaire ou d'un ensemble d' index unique sur la table d'origine. La colonne " dupField " est le champ qui est déterminé à être un déclencheur pour le dupliquer . Par exemple , si vous avez une table client avec doublons, vous pouvez déterminer que plus de 1 dossier avec le même numéro de sécurité sociale est un field.delete double de TheTablewhere uniqueField pas (select min ( uniqueField ) de TempTable T2where T2.dupField = MyTable.dupField )
5
vérifier les résultats. Exécuter les mêmes requêtes de l'étape 1 . Le nombre total de la table d'origine devrait être la différence entre le nombre compté avant que la requête de suppression et le nombre supprimée de la table . En outre, d'exécuter la requête distincte devrait avoir le même nombre que la 1ère requête.