Я пишу код для переноса данных из нашей действующей базы данных Access в новую базу данных Sql Server, которая имеет другую схему с реорганизованной структурой. Эта база данных Sql Server будет использоваться с новой версией нашего приложения в разработке.
Я писал код миграции на C #, который вызывает Sql Server и Access и преобразует данные по мере необходимости. Я впервые перенес таблицу, в которой есть записи, связанные с новыми записями другой таблицы, которые я недавно не обновлял, и это вызвало ошибку, поскольку не удалось найти запись в соответствующей таблице в SQL Server
Итак, моя производственная таблица SqlServer содержит данные только до 1/14/09, и я продолжаю переносить больше таблиц из Access. Поэтому я хочу написать метод обновления, который может выяснить, что нового есть в Access, который не был отражен в Sql Server.
Моя текущая идея состоит в том, чтобы написать запрос на стороне SQL, который выполняет SELECT Max (RunDate) FROM ProductionRuns, чтобы дать мне самую последнюю дату в этом поле в таблице. На стороне доступа я написал бы запрос, который выполняет SELECT * FROM ProductionRuns WHERE RunDate>?, Где параметр - это максимальная дата, найденная в SQL Server, и выполнил мой шаг перевода в коде, а затем вставил новые данные в Sql Server ,
Что мне интересно, так ли у меня синтаксис для получения самой последней даты в этой таблице Sql Server? И есть ли лучший способ выполнить такую миграцию живой базы данных?
Редактировать: Я сделал копию текущей действующей базы данных. Который я могу затем перенести, не беспокоясь об изменениях, затем использовать его для тестирования во время разработки, а затем я могу переносить последние данные всякий раз, когда новая база данных и приложение запускаются.