Ich habe rund 21 Datenbanken auf meinem SQL Server 2012-Rechner, die idealerweise die gleiche Liste von Tabellen haben sollte, aber sie nicht tun.SQL Server: Suche Liste von eindeutigen Tabellen über Datenbanken
Angenommen:
- Database 1 weist Tabellen A, B, C, D, E
- Database 2 hat Tabellen A, B, C, D, Z
- Database 3 hat Tabellen A, B, C, Y, Z
- Datenbank 4 hat Tabellen A, B, X, Y, Z
Die Ausgabe von meiner letzten Abfrage muss eine Tabellenliste wie A, B, C, D, E sein , X, Y, Z
Ich verstehe, dass diese Informationen stammen können, indem Sie sys.tables
jeder Datenbank beitreten, aber ich bin mir nicht sicher, über welchen Join sollte ich verwenden und wie.
select d.*
from ((select table_name from db1.information_schema.tables) union
(select table_name from db2.information_schema.tables) union
. . .
(select table_name from db21.information_schema.tables)
) d;
Eigentlich ist die Unterabfrage ist nicht wirklich notwendig, aber es ist praktisch, wenn Sie etwas wie zählen die Anzahl tun wollen:
Jeder möglicher Ausgangspunkt
[Dies] (http://stackoverflow.com/questions/6568098/how-to-get-a-list-of-all-tables-in-two-different-databases?rq=1) ist etwas ähnliches ich gefunden, aber ich muss das gleiche für mehrere Datenbanken tun –