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


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

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

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

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

В этом пошаговом руководстве сравниваются данные двух баз данных, создается скрипт языка обработки данных (DML) на основе различий, а затем с его помощью целевая база данных заполняется данными исходной базы данных.

В данном пошаговом руководстве выполняются следующие процедуры.

  • Добавление данных в базу данных-источник. В этой процедуре для добавления данных в таблицу Customer в исходной базе данных используется редактор Transact-SQL.

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

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

Обязательные компоненты

Для выполнения этого пошагового руководства необходим доступ к следующим продуктам:

  • SQL Server 2008

  • Visual Studio Premium или Visual Studio Ultimate

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

  • Исходная, CompareProjectDB, у которой есть исходная структура, но нет данных. Настройка проекта для вставки данных в эту базу данных будет выполнена в рамках скрипта, выполняемого после развертывания.

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

Также нужны разрешения на чтение данных из базы данных-источника и целевой базы данных.

Добавление данных в базу данных-источник

Использование редактора Transact-SQL для добавления данных в базу данных-источник

  1. В меню Данные выберите команду Редактор Transact-SQL и щелкните Новое подключение запроса.

  2. Укажите подключение к серверу, в котором расположена база данных CompareProjectDB.

  3. Введите следующую инструкцию Transact-SQL в редакторе Transact-SQL:

    use CompareProjectDB;
    go
    delete from [Sales].[Customer];
    go
    exec [Sales].[uspNewCustomer] 'Ken J. Sánchez'
    exec [Sales].[uspNewCustomer] 'Terri Lee Duffy'
    exec [Sales].[uspNewCustomer] 'Roberto Tamburello'
    exec [Sales].[uspNewCustomer] 'Rob Walters'
    exec [Sales].[uspNewCustomer] 'Gail Erickson'
    exec [Sales].[uspNewCustomer] 'Jossef Goldberg'
    exec [Sales].[uspNewCustomer] 'Dylan Miller'
    exec [Sales].[uspNewCustomer] 'Diane Margheim'
    exec [Sales].[uspNewCustomer] 'Gigi Matthew'
    go
    
  4. На панели инструментов редактора Transact-SQL щелкните Выполнить код SQL.

    Инструкции Transact-SQL удалят все существующие данные из таблицы [Sales].[Customer], а затем используют хранимую процедуру [Sales].[uspNewCustomer] для добавления девяти клиентов. Теперь, когда база данных-источник содержит данные, можно сравнить ее с целевой базой данных.

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

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

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

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

  2. В списке Исходная база данных щелкните подключение к базе данных CompareProjectDB.

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

  3. В списке Конечная база данных щелкните Server.EmptyDB.dbo.

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

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

  4. Нажмите кнопку Далее.

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

    Примечание

    Если таблицы и представления подлежащие сравнению задавать не нужно, мощно нажать кнопку Готово вместо Далее.

  5. Нажмите кнопку Готово, чтобы запустить сравнение.

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

    Примечание

    Активный процесс сравнение данных можно остановить, нажав кнопкуОстановить на панели инструментов Сравнение данных.

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

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

Просмотр результатов сравнения данных

  1. Щелкните строку [Sales].[Customer].

    В именах вкладок, указанных в области представления записей, указывается количество записей каждого типа: Различные записи (0), Только в исходном (9), Только в конечном (0) и Идентичные записи (0).

  2. Перейдите на вкладку Только в исходном (9).

    На вкладке Только в исходном (9) каждая строка и каждый столбец соответствует строке или столбцу в таблице [Sales].[Customer].

    Примечание

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

Обновление целевого объекта

Данные в целевом объекте можно обновить либо непосредственно из окна "Сравнение данных", либо с помощью редактора Transact-SQL. В этом разделе описываются обе возможности.

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

Запись обновлений с помощью параметров сравнения данных

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

  • Обновление целевой базы данных

Запись обновлений с использованием редактора Transact-SQL

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

  • Анализ и выполнение скрипта синхронизации

Обновление целевой базы данных

Обновление целевого объекта

  1. В окне "Сравнение данных" щелкните [Sales].[Customer].

  2. В области сведений щелкните Только в исходном.

    Первые две строки предназначены для клиентов с именами Ken J. Sánchez и Terri Lee Duffy.

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

  3. Снимите флажок в строке Terri Lee Duffy.

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

  4. В окне «Сравнение данных» щелкните Записать обновления.

    Будут выполнены действия обновления, перечисленные в окне «Сравнение данных». В ходе синхронизации целевой объект изменяется в соответствии с исходным.

    Примечание

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

Анализ и выполнение скрипта синхронизации

Анализ скрипта синхронизации

  1. На панели инструментов "Сравнение данных" нажмите кнопку Экспортировать в редактор.

    Откроется реактор Transact-SQL в режиме подключения, и в нем отобразится скрипт Transact-SQL. Имя этого окна будет выглядеть следующим образом: DataUpdate_EmptyDB_1.sql. Поскольку у вас имеется доступ к этому окну для записи, вы можете изменить скрипт. При необходимости сохранить обновленный скрипт нажмите кнопку Сохранить.

  2. Для синхронизации данных в двух базах данных выполните этот скрипт, щелкнув Выполнить код SQL или нажав клавишу F5.

    Примечание

    В процессе выполнения скрипта можно отменить операцию, щелкнув Отменить выполнение запроса или нажав клавиши ALT + BREAK.

См. также

Задачи

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

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

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

Сравнение и синхронизация схем баз данных