Я включил этот ответ ради нового вопроса, который был отмечен как дубликат.
Мне когда-то приходилось сравнивать две производственные базы данных и находить какие-либо различия между ними. Единственными интересующими элементами были таблицы, которые были добавлены или удалены, и столбцы, которые были добавлены, удалены или изменены. У меня больше нет сценариев SQL, которые я разработал, но ниже приводится общая стратегия. И база данных не была SQL Server, но я думаю, что применяется та же стратегия.
Сначала я создал то, что лучше всего описать как базу метаданных. Пользовательские таблицы этой базы данных содержали описания данных, скопированные из системных таблиц производственных баз данных. Такие вещи, как имя таблицы, имя столбца, тип данных и точность. Был еще один элемент, имя базы данных, которого не было ни в одной из рабочих баз данных.
Затем я разработал сценарии, которые связывают выборки из системных таблиц производственных баз данных со вставками в пользовательские таблицы базы метаданных.
Наконец, я разработал запросы для поиска таблиц, которые существуют в одной базе данных, но не в другой, и столбцов из таблиц в обеих базах данных, которые были только в одной базе данных, и столбцов с противоречивыми определениями между двумя базами данных.
Из примерно 100 таблиц и 600 столбцов я обнаружил несколько несоответствий и один столбец, который был определен как плавающая точка в одной базе данных и целое число в другой. Этот последний оказался находкой, потому что он обнаружил проблему, которая преследовала одну из баз данных в течение многих лет.
Модель для базы метаданных была предложена системными таблицами. Запросы составить несложно, они вращаются в основном вокруг группы и имеют количество (имя базы данных) = 1.
В вашем случае, с 700 производственными базами данных, вы можете захотеть автоматизировать первые два шага больше, чем я, просто сравнив две базы данных. Но идея похожа.