Я пытаюсь использовать отслеживание изменений для постепенного копирования данных с SQL Server в базу данных SQL Azure.Я следовал учебному руководству по Microsoft Azure, но столкнулся с некоторыми проблемами при реализации этого для большого количества таблиц.
В исходной части операции копирования я могу использовать запрос, который дает мне таблицу изменений всех записей, которые были обновлены, вставлены или удалены со времени последней версии отслеживания изменений.Эта таблица будет выглядеть примерно так:
PersonID Age Name SYS_CHANGE_OPERATION
---------------------------------------------
1 12 John U
2 15 James U
3 NULL NULL D
4 25 Jane I
с PersonID, являющимся первичным ключом для этой таблицы.
Проблема заключается в том, что операция копирования может только добавлять данные в базу данных SQL Azure, поэтому, когдазапись обновляется и выдает ошибку из-за дублирования первичного ключа.Я могу справиться с этой проблемой, разрешив операции копирования использовать хранимую процедуру, которая объединяет данные в таблицу базы данных SQL Azure, но проблема в том, что у меня большое количество таблиц.
Мне бы хотелось, чтобы сценарий предварительной копии удалял удаленные и обновленные записи в базе данных SQL Azure, но не могу понять, как это сделать.Нужно ли создавать отдельные хранимые процедуры и соответствующие типы таблиц для каждой таблицы, которую я хочу скопировать, или есть ли сценарий предварительного копирования для удаления записей на основе таблицы отслеживания изменений?