Comparaison des tables SQL Server : un guide complet pour trouver les différences
L'identification des incohérences de données entre deux tables SQL Server nécessite une méthode pour identifier les lignes uniques à chaque table. La requête suivante y parvient efficacement :
<code class="language-sql">(SELECT * FROM table1 EXCEPT SELECT * FROM table2) UNION ALL (SELECT * FROM table2 EXCEPT SELECT * FROM table1)</code>
Répartition des requêtes :
EXCEPT
isole les lignes présentes dans table1
mais absentes dans table2
.UNION ALL
fusionne les résultats de la première opération EXCEPT
avec une opération EXCEPT
en miroir sur table2
, révélant tous les écarts.Exemple illustratif :
Supposons deux tableaux, TempTestData
et RealData
, chacun avec des colonnes FirstName
, LastName
et Product
. Pour découvrir des lignes avec des valeurs différentes dans ces colonnes, utilisez cette requête :
<code class="language-sql">(SELECT * FROM TempTestData EXCEPT SELECT * FROM RealData) UNION ALL (SELECT * FROM RealData EXCEPT SELECT * FROM TempTestData)</code>
Cette requête renverra toutes les lignes présentant des variations dans l'une des colonnes spécifiées dans les deux tables.
Considérations importantes :
NULL
valeurs, LEFT JOIN
ou FULL OUTER JOIN
offrent une gestion de comparaison NULL
plus robuste que EXCEPT
.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!