Question

Lorsque vous devez comparer deux tables pour voir quelles sont les différences, sont-il des outils ou des raccourcis que vous utilisez, ou avez-vous handcode SQL pour comparer les deux tableaux?

Fondamentalement, les caractéristiques essentielles d'un produit comme Red Gate SQL Data Comparer (schémas pour mes tableaux correspondent généralement toujours).

Contexte: Dans mon environnement SQL Server, j'ai créé une procédure stockée qui contrôle les métadonnées des deux tables / vues, crée une requête (comme SQL dynamique) qui relie les deux tables sur les colonnes clés spécifiées, et compare les données à les comparer colonnes, les principales différences de rapports et les différences de données. La requête peut être soit imprimé et modifié / copié ou tout simplement comme cela est étét exécutée. Nous ne sommes pas autorisés à créer des procédures stockées dans notre environnement Teradata, malheureusement.

Était-ce utile?

La solution

Sons comme un outil de profilage de données telles que Profiler Open Talend aurait le plus de sens à ce moment-là.

Vous pouvez écrire une déclaration de BTEQ qui construit la requête similaire à votre procédure stockée SQL Server et puis exporter le SQL construit dynamiquement. Vous pouvez ensuite à son tour courir qu'à l'intérieur de votre BTEQ. Il pourrait obtenir lourd, mais avec suffisamment de détermination que vous pourriez probablement simulé quelque chose.

Autres conseils

Je ne sais pas si cela est la bonne réponse que vous recherchez.

sel * from database_name1.table_name1
minus
sel * from database_name2.table_name2;

vous pouvez faire la même chose en sélectionnant des colonnes spécifiques. Cela donne essentiellement les lignes existantes non de table2 qui sont dans le tableau 1.

Si vous ne cherchez pas ce type de réponse, s'il vous plaît ignorer et continuer.

Vous pouvez également sélectionner comme ci-dessous.

select 
table1.keycol1,
table2.keycol2,
(table1.factcol1 - table2.factcol2) as diff
from table1
inner join 
table2
on table1.keycol1 = table2.keycol1
and table1.keycol2 = table2.keycol2
where diff <> 0

C'était juste une analyse qui peut donner une idée. S'il vous plaît ne pas tenir compte des erreurs de syntaxe et de programmatiques. Espérons que cela aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top