Domanda

Quando è necessario confrontare due tabelle per vedere quali siano le differenze, ci sono strumenti o scorciatoie che si utilizzano, o si handcode SQL per confrontare le due tabelle?

In sostanza le caratteristiche principali di un prodotto come Red Gate SQL Data Compare (schemi per le mie tabelle di solito sempre corrispondono).

Contesto: Nel mio ambiente di SQL Server, ho creato una stored procedure, che ispeziona i metadati delle due tabelle / viste, crea una query (come SQL dinamico), che unisce le due tabelle sulle colonne chiave specificate, e mette a confronto i dati in il confronto colonne, riportando differenze chiave e le differenze di dati. La query può o essere stampato e modificato / copiato o semplicemente excecuted come è. Non c'è permesso di creare stored procedure nel nostro ambiente Teradata, purtroppo.

È stato utile?

Soluzione

Suona come uno strumento di profiling dei dati come ad esempio Open Profiler di Talend renderebbe più senso a quel punto.

Si potrebbe scrivere una dichiarazione BTEQ che costruisce la query simile a stored procedure di SQL Server e quindi esportare lo SQL costruita dinamicamente. È quindi possibile eseguire a sua volta che dentro della tua BTEQ. Si potrebbe ottenere ingombrante, ma con sufficiente determinazione si potrebbe forse finta qualcosa.

Altri suggerimenti

Non so se questa è la risposta giusta che si sta cercando.

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

si può fare lo stesso selezionando colonne specifiche. Questo sarà essenzialmente darà le file inesistenti da table2 che sono in tabella 1.

Se non foste alla ricerca di questo tipo di risposta, si prega di ignorare questo e continuare.

Inoltre è possibile selezionare come qui di seguito.

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

Questo è stato solo un'analisi che può dare un'idea. Si prega di ignorare eventuali errori sintattici e programmatiche. Spero che questo aiuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top