Includo questa risposta nell'interesse di una nuova domanda che è stata contrassegnata come duplicata.
Una volta ho dovuto confrontare due database di produzione e trovare eventuali differenze di schema tra di loro. Gli unici elementi di interesse erano le tabelle che erano state aggiunte o eliminate e le colonne che erano state aggiunte, rimosse o modificate. Non ho più gli script SQL che ho sviluppato, ma ciò che segue è la strategia generale. E il database non era SQL Server, ma penso che si applichi la stessa strategia.
Innanzitutto, ho creato quello che può essere meglio descritto come metadatabase. Le tabelle utente di questo database contenevano descrizioni dei dati copiate dalle tabelle di sistema dei database di produzione. Cose come Nome tabella, Nome colonna, Tipo di dati e Precisione. C'era un altro elemento, Nome database, che non esisteva in nessuno dei database di produzione.
Successivamente, ho sviluppato degli script che accoppiavano selezioni dalle tabelle di sistema dei database di produzione con inserimenti nelle tabelle utente del metadatabase.
Infine, ho sviluppato query per trovare tabelle esistenti in un database ma non nell'altro e colonne da tabelle in entrambi i database che erano solo in un database e colonne con definizioni incoerenti tra i due database.
Di circa 100 tabelle e 600 colonne, ho trovato una manciata di incoerenze e una colonna che è stata definita come un punto mobile in un database e un numero intero nell'altro. Quest'ultimo si è rivelato essere una manna dal cielo, perché ha portato alla luce un problema che aveva afflitto uno dei database per anni.
Il modello per il metadatabase è stato suggerito dalle tabelle di sistema in questione. Le query non erano difficili da costruire, ruotando principalmente attorno al gruppo e avendo count (nome del database) = 1.
Nel tuo caso, con 700 database di produzione, potresti voler automatizzare i primi due passaggi più di quanto ho fatto con solo due database da confrontare. Ma l'idea è simile.