я загрузил все содержимое из TableA, где TableA имеет поле под названиемSQL-Обновление с предыдущего дня
CreatedDate(DateTime)
Я скопирована только содержание этой таблицы, которые имеют на самом деле полезность.
Вместо того, чтобы использовать агент SQL для планирования задания для копирования этой таблицы каждую ночь, я хотел бы добавить данные и добавить только новые данные и, возможно, внести некоторые обновления, которые могли быть затронуты в последний день.
Просто интересно, как лучше всего это сделать, учитывая, что у нас уже есть начальные данные, но мы просто хотим добавлять новые данные каждый день.
Я думал о выполнении следующего SQL в предложении где:
CreatedDate between getdate()-1 and getdate()
Это лучший способ сделать это?
Спасибо
Вы можете получить «MAX (CreatedDate)» предыдущего запуска? Если это возможно, вы можете использовать это в своем предложении where, например 'CreatedDate> MAX (CreatedDate)'. – wdosanjos
AS wdosanjos указал, что получение MAX (CreateDate) вашей целевой таблицы поможет вам определить ваш нижний диапазон, а затем использовать GETDATE() как верхние работы. Единственное, что это поможет вам идентифицировать НОВЫЕ записи, но вы также указали на необходимость поиска изменений, можно ли обновлять записи? Если вам нужен индикатор версии или другой столбец, который указывает, что возможно что-то вроде UpdateDate, существует ли 1? Afterwords 2 операции Update и Insert довольно легко, и хотя я не рекомендую его персонализировать, так как может возникнуть сложная проблема с ним MERGE() также может использоваться – Matt