Копировать ВЫБРАННЫЕ данные из одной таблицы в другую

#sql

#sql

Вопрос:

У меня есть одна таблица с именем snapshot_history . В этой таблице записывается каждое действие, выполняемое подразделением (аварийный автомобиль). Однако эта таблица очищается в течение 30 дней. (Перемещений так много, что в течение года на сервере не хватит места)

Однако мне нужно, чтобы часть этой истории была постоянной, а не удалялась. Система не моя, поэтому я не могу перепроектировать систему.

Каждую ночь в 2am я хочу копировать изменения из таблицы «snapshot_history».

Как я могу это сделать? Я знаю, как вставить и все такое, но проблема в том, что таблица FROM удаляется в течение 30-дневного периода.

 INSERT vehicle
    ,unit
    ,type
    ,STATUS
    ,DATE
    ,TIME
INTO perpetual_snapshot_history
WHERE type = 1
    AND STATUS = 2
  

Комментарии:

1. Вы можете сравнить первичные ключи между исходной таблицей и целевой таблицей. Если вы видите разницу в первичных ключах, вставьте ее в свою целевую (или скопированную) таблицу. Дайте мне знать, если вам нужна помощь по sql. Спасибо.

2. обновляется ли таблица истории снимков ежедневно? вы можете запускать ежедневное пакетное задание для обновления / вставки в вашу таблицу.

3. Я использую Microsoft SQL 2014

4. создание события начинается со времени 2 часа ночи с интервалом каждые 24 часа!!!!!

Ответ №1:

 INSERT INTO [NEW_TABLE] (
    FieldName1
    ,FieldName2
    ,FieldName3
    ,etc etc
    )
SELECT A_Field
    ,A_Field_2
    ,A_Field_3 etc etc
FROM SNAPSHOT_HISTORY
WHERE SPASHOT_HISTORY.CreatedDate >= A_DATE.
  

Убедитесь, что поля соответствуют правильным столбцам.