J'inclus cette réponse pour le bien d'une nouvelle question qui a été marquée comme doublon.
Une fois, j'ai dû comparer deux bases de données de production et trouver des différences de schéma entre elles. Les seuls éléments intéressants étaient les tableaux qui avaient été ajoutés ou supprimés et les colonnes qui avaient été ajoutées, supprimées ou modifiées. Je n'ai plus les scripts SQL que j'ai développés, mais ce qui suit est la stratégie générale. Et la base de données n'était pas SQL Server, mais je pense que la même stratégie s'applique.
Tout d'abord, j'ai créé ce qui peut être décrit comme une métadatabase. Les tables utilisateur de cette base de données contenaient des descriptions de données copiées à partir des tables système des bases de données de production. Des choses comme le nom de la table, le nom de la colonne, le type de données et la précision. Il y avait un autre élément, Nom de la base de données, qui n'existait dans aucune des bases de données de production.
Ensuite, j'ai développé des scripts qui couplaient les sélections des tables système des bases de données de production avec des insertions dans les tables utilisateur de la métadatabase.
Enfin, j'ai développé des requêtes pour trouver des tables qui existaient dans une base de données mais pas dans l'autre, et des colonnes de tables des deux bases de données qui n'étaient que dans une seule base de données, et des colonnes avec des définitions incohérentes entre les deux bases de données.
Sur environ 100 tables et 600 colonnes, j'ai trouvé une poignée d'incohérences et une colonne qui était définie comme un point flottant dans une base de données et un entier dans l'autre. Cette dernière s'est avérée être une aubaine, car elle a mis au jour un problème qui sévissait dans l'une des bases de données depuis des années.
Le modèle de la métadatabase a été suggéré par les tables système en question. Les requêtes n'étaient pas difficiles à construire, tournant principalement autour du groupe par et ayant count (nom de la base de données) = 1.
Dans votre cas, avec 700 bases de données de production, vous voudrez peut-être automatiser les deux premières étapes de plus que moi avec seulement deux bases de données à comparer. Mais l'idée est similaire.