Сравнение и синхронизация данных из одной или нескольких таблиц с данными из эталонной базы данных

Вы можете сравнивать данные в исходной и целевой базах данных и указывать, какие таблицы подлежат сравнению. Данные можно просматривать, чтобы принять решение о том, какие изменения следует синхронизировать. Затем можно обновить целевую базу данных для синхронизации баз данных или экспортировать скрипт обновления в редактор Transact-SQL или в файл.

Например, может потребоваться синхронизировать базы данных для обновления промежуточного сервера с применением копии рабочих данных. Можно также синхронизировать одну или несколько таблиц для заполнения их ссылочными данными из другой базы данных. Кроме того, можно сравнивать данные до и после выполнения тестов в качестве дополнительной формы проверки.

Можно сравнивать данные в двух базах данных, но возможность задавать файлы проекта базы данных или DACPAC для сравнения отсутствуют, поскольку они не содержат данные.

В этом разделе рассматриваются следующие вопросы:

Требования

Если речь идет о сравнении данных в таблице или представлении, то таблица или представление в базе данных-источнике должна иметь несколько общих атрибутов с таблицей или представлением в целевой базе данных. Таблицы и представления, которые не соответствуют следующим условиям, не подлежат сравнению и не отображаются на второй странице мастера Создание сравнения данных:

  • Таблицы должны иметь совпадающие имена столбцов, имеющих совместимые типы данных.

    В именах таблиц, представлений и владельцев учитывается регистр.

  • Таблицы должны иметь одинаковые первичные ключи, уникальные индексы или ограничения уникальности.

  • Представления должны иметь одинаковые уникальные кластеризованные индексы.

  • Можно сравнивать таблицу с представлением, только если они имеют одинаковое имя.

Каждый объект имеет ключ или индекс, определяющий другие объекты, которым он соответствует. Каждая таблица и представление могут иметь больше одного первичного ключа, уникального индекса или ограничения уникальности. Поэтому может потребоваться указать используемые ключ, индекс или ограничение.

Общие задачи

В этом разделе приведено описание общих задач, которые поддерживают этот сценарий.

Определение параметров для управления сравниваемыми данными. При сравнении данных можно пропускать столбцы идентификаторов, отключать триггеры и внешние ключи. Можно также удалять первичные ключи, индексы и ограничения уникальности из скрипта обновления.

Сравнение данных в таблицах и при желании обновление целевой базы данных для согласования с исходной базой данных. После определения сравниваемых баз данных, исходной и целевой, а также для запуска сравнения, просмотрите результаты в окне Сравнение данных. Просмотрите не только подробные сведения о различиях, но и скрипт обновления, который используется для синхронизации данных. После выявления различий между двумя базами данных определите действие для каждого различия. Затем обновите целевую базу данных или экспортируйте скрипт обновления в редактор Transact-SQL или в файл. Экспортировать скрипт может потребоваться для того, чтобы вы или кто-то другой могли ознакомиться с ним перед применением изменений.

Описание результатов сравнения

В следующей таблице приведено описание пяти столбцов в окне Сравнение данных.

Столбец Примечания
Объект Отображает имя таблицы или представления, а также флажок, который указывает, должна ли целевая база данных быть синхронизирована при записи обновлений или экспорте скрипта обновления. Флажок недоступен в таблицах или представлениях, которые не содержат данные.
Различные записи Отображает число записей в целевой базе данных, имеющих одинаковый ключ, но не такие данные, как в исходной базе данных. В круглых скобках указано число записей, отмеченных как подлежащие обновлению при записи обновлений или экспорте скрипта обновления.
Только в исходной базе данных Отображает число записей в исходной базе данных, которые отсутствуют в целевой базе данных. В круглых скобках указано число записей, отмеченных как подлежащие добавлению при записи обновлений или экспорте скрипта обновления.
Только в целевой базе данных Отображает число записей в целевой базе данных, которые отсутствуют в исходной базе данных. В круглых скобках указано число записей, отмеченных как подлежащие удалению при записи обновлений или экспорте скрипта обновления.
Идентичные записи Отображает число записей в целевой базе данных, которые имеют тот же ключ и такие же данные, как и в исходной базе данных. Эти записи не обновляются при записи обновлений или экспорте скрипта обновления.

Детализация таблиц и представлений

После щелчка любой таблицы или представления в окне Сравнение данных в области сведений отображаются все строки, содержащиеся в таблице или представлении. Вкладки области сведений показывают разные категории («Различные записи», «Только в исходной базе данных», «Только в целевой базе данных», «Идентичные записи»). Для каждой строки предусмотрен флажок, который можно выбрать или очистить, чтобы указать, включать ли соответствующее изменение в скрипт обновления.

См. также:

SQL Server Data Tools
Руководство. использовать сравнение схем для сопоставления различных определений баз данных