Поделиться через


Практическое руководство. Сравнение и синхронизация двух баз данных

Этот раздел применим к:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

Тема применяется Тема применяется Тема не применяется Тема не применяется

Используя Visual Studio, можно сравнить данные, содержащиеся в двух базах данных. Сравниваемые базы данных называются исходной и целевой.

Примечание

Проекты баз данных и проекты приложений уровня данных не содержат данных.Поэтому ни один тип проекта не может быть исходным или целевым объектом при сравнении данных.Подобным образом DBCHEMA-файлы и DACPAC-файлы не могут быть исходными или целевыми объектами при сравнении данных.

При сравнении данных создается скрипт языка обработки данных (DML), который можно использовать для синхронизации различающихся баз данных или обновления некоторых или всех данных в конечной базе данных. По завершении сравнения данных его результаты отображаются в окне «Сравнение данных» в Visual Studio.

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

  • Можно просмотреть различия двух баз данных. Дополнительные сведения см. в разделе Просмотр различий данных.

  • Можно обновить весь целевой объект или его часть в соответствии с исходным. Дополнительные сведения см. в разделе Синхронизация данных баз данных.

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

Примечание

Можно также сравнить схемы двух баз данных или двух версий одной базы данных.Дополнительные сведения см. в разделе Практическое руководство. Сравнение схем баз данных.

Сравнение данных баз данных

Сравнение данных с использованием мастера нового сравнения данных

  1. В меню Данные выберите команду Сравнение данных и щелкните Новое сравнение данных.

    Появится мастер нового сравнения данных. Также откроется окно «Сравнение данных» и Visual Studio автоматически присвоит ему имя, подобное DataCompare1.

  2. Определите исходную и конечную базу данных.

    Если список Исходная база данных или Конечная база данных пуст, щелкните Новое подключение. В диалоговом окне Свойства подключения определите сервер, на котором находится база данных, и тип проверки подлинности для использования при подключении к базе данных. Затем нажмите кнопку ОК для закрытия диалогового окна Свойства подключения и возврата в мастер сравнения данных.

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

  3. Установите флажки для таблиц и представлений, которые требуется сравнить. При желании можно развернуть узлы объектов базы данных и установить флажки для столбцов тех объектов, которые подлежат сравнению.

    Примечание

    Для того чтобы появиться в этом списке, таблицы и представления должны отвечать двум критериям.Во-первых, схемы объектов исходной и конечной базы данных должны совпадать.Во-вторых, в списке выводятся только таблицы и представления, имеющие первичный или уникальный ключ, или индекс.Если ни одна таблица и ни одно представление не удовлетворяют обоим критериям, список будет пустым.

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

  5. Нажмите кнопку Готово.

    Начнется процесс сравнения.

    Примечание

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

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

Сравнение данных с использованием модели автоматизации Visual Studio

  1. Откройте меню Вид выберите последовательно пункты Другие окна и выберите Окно команд.

  2. В командном окне введите следующую команду:

    Data.NewDataComparison /SrcServerName sServerName /SrcDatabaseName sDatabaseName /SrcUserName sUserName /SrcPassword sPassword /SrcDisplayName sDisplayName /TargetServerName tServerName /TargetDatabaseName tDatabaseName /TargeUserName tUserName /TargetPassword tPassword /TargetDisplayName tDisplayName
    

    Замените заполнители (sServerName, sDatabaseName, sUserName, sPassword, sDisplayName, tServerName, tDatabaseName, tUserName, tPassword и tDisplayName) значениями из исходной и конечной базы данных.

    Если исходная и конечная база данных не указана, появляется диалоговое окно Новое сравнение данных. Дополнительные сведения о параметрах для команды Data.NewDataComparison см. в разделе Справочник по командам автоматизации функций работы с базами данных в Visual Studio.

    Сравниваются данные в заданной исходной и конечной базе данных. Результаты будут отображены в ходе сеанса сравнения данных. Для получения дополнительной о методах просмотра результатов или синхронизации данных см. разделы Просмотр различий данных и Синхронизация данных базы данных.

Просмотр различий данных

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

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

Просмотр различий данных

  1. Сравните данные в исходной и конечной базе данных. Дополнительные сведения см. в разделе Сравнение данных баз данных.

  2. (Необязательно.) Выполните одно или оба указанных ниже действия.

    • По умолчанию отображаются результаты для всех объектов, независимо от их состояния. Чтобы отобразить только объекты, имеющие определенное состояние, щелкните элемент в списке Фильтр.

    • Для просмотра результатов для записей в определенном объекте щелкните этот объект в главной области результатов, а затем щелкните вкладку на панели просмотра записей. На каждой вкладке отображаются все записи объекта, имеющие определенное состояние: «Другой», «Только в исходном», «Только в конечном» и «Идентичен». Данные отображаются по записям и столбцам.

Синхронизация данных базы данных

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

Обновление целевых данных с использованием команды «Записать обновления»

  1. Сравните данные в исходной и конечной базе данных. Дополнительные сведения см. в разделе Сравнение данных баз данных.

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

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

  2. В таблице окна «Сравнение данных» щелкните строку.

    В области сведений отобразятся результаты для записей в объекте базы данных, который вы щелкнули. Записи группируются по состоянию на вкладках, которые могут использоваться для указания данных, подлежащих распространению из исходного объекта в целевой.

  3. В области сведений щелкните вкладку. имя которой содержит отличное от нуля (0) число.

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

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

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

  5. (Необязательно.) Щелкните Экспортировать в редактор.

    Откроется окно редактора Transact-SQL и в нем скрипт языка обработки данных (DML), который будет использоваться для обновления целевого объекта.

  6. Для синхронизации записей, которые различаются, отсутствуют или добавлены, щелкните Записать обновления.

    Примечание

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

    Данные в выбранных записях в целевом объекте обновляются данными из соответствующих записей исходного объекта.

    Примечание

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

Обновление целевых данных с использованием скрипта Transact-SQL

  1. Сравните данные в исходной и конечной базе данных. Дополнительные сведения см. в разделе Сравнение данных баз данных.

    По завершении сравнения в окне "Сравнение данных" отображаются результаты для сравнивавшихся объектов. Дополнительные сведения см. в разделе Сравнение и синхронизация данных одной или нескольких таблиц с данными в справочной базе данных.

  2. (Необязательно.) В области сведений снимите флажки тех записей целевого объекта, которые не требуется обновлять, как описано в предыдущей процедуре.

  3. Щелкните Экспортировать в редактор.

    В новом окне отобразится скрипт Transact-SQL, который распространит изменения, необходимые для приведения данных целевого объекта в соответствие данным исходного объекта. Новому окну присваивается имя, такое как сервер.базаДанных - DataUpdate_базаДанных_1.sql.

    Этот скрипт отражает изменения, внесенные области сведений. Предположим, вы сняли флажок определенной строки на странице «Только в конечном» для таблицы [dbo].[Shippers]. В таком случае скрипт не обновит эту строку.

  4. (Необязательно.) Отредактируйте скрипт в окне сервер.базаДанных - DataUpdate_базаДанных_1.sql.

  5. (Необязательно, но рекомендуется.) Выполните резервное копирование целевой базы данных.

  6. Щелкните Выполнить код SQL или нажмите клавишу F5 для обновления целевой базы данных.

    Задайте подключение к целевой базе данных, которую необходимо обновить.

    Важно!

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

    Данные в выбранных записях в целевом объекте обновляются данными из соответствующих записей исходного объекта.

См. также

Задачи

Практическое руководство. Сравнение схем баз данных

Основные понятия

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