Последняя дата сравнения - отличная идея
Еще один метод, с которым я добился большого успеха, - это SSIS (хотя у него есть кривая обучения, и он может быть излишним, если вы не будете много заниматься этим):
Сделать пакет
Установить источник данных для каждой из двух таблиц. Если вы ожидаете много изменений, потяните целые таблицы, если вы ожидаете только инкрементные изменения, то фильтруйте по дате модификации. Убедитесь, что результаты упорядочены
Соедините оба набора в полное внешнее соединение
Разделить результаты объединения на три группы: без изменений, измененные, новые
Удалите неизмененные записи, отправьте новые записи в место назначения вставки и отправьте измененные записи либо в промежуточную таблицу для обновления на основе SQL, либо - для нескольких строк - команду OLEDB с параметризованным оператором обновления.
ИЛИ, если в SQL Server 2008 используется Merge