Как мне создать скрипт для сравнения, обновления и сопоставления структуры двух баз данных
Я сравниваю две базы данных, используя открытый diff, который похож на SQL Compare.
У меня есть две базы данных, которые должны совпадать по структуре, так что для сравнения я хотел бы создать сценарий так, чтобы, если у одной БД была определенная таблица, а у другой БД ее нет, она создавала бы эту таблицу, чтобы структура и сопоставление в две базы данных совпадают.
Я использую SQL Server 2012.
1 ответ
Есть много способов сделать это. Одним из способов является создание того, что я назову "базой метаданных". База метаданных - это просто база данных, пользовательские таблицы которой содержат структурные метаданные из одной или нескольких других баз данных. Я не слишком знаком с SQL Server, но я делал то же самое несколько раз с Oracle.
Возможно, самый простой способ - выгрузить выборку из системных таблиц и загрузить их в БД MS Access в виде пользовательских таблиц. Оттуда сравнение двух баз данных - это просто обычный DML, который вы должны знать, как делать, если вы администратор базы данных. Пример: для всех столбцов во всех таблицах в обеих базах данных сгруппируйте по имени таблицы и имени столбца и выберите группы, имеющие более одного типа данных или более чем одну точность. Или выберите группы, которые существуют только в одной базе данных.
Вы можете использовать третью базу данных SQL-сервера в качестве контейнера базы метаданных, если хотите. Мне просто нравится MS Access, потому что это так просто.
Более подробное объяснение потребует более подробной информации о том, что вы пытаетесь достичь.