2015-10-25 5 views
0

У меня есть таблица test1 с полями Id и Date. ID с первичным ключом, на который ссылается другая таблица test2 с идентификатором и именем. Здесь Id ссылается на идентификатор из test1.Удалить запись из одной таблицы и вставить в другую таблицу

Я хочу удалить последние 3 месяца данные из test1 и test2 и вставить удаленные данные в таблицы test3 (из test1) и test4 (из test2).

+0

Странно, что вы хотите архивировать данные из 2 таблиц всего за 1 другую таблицу. Почему не два? – trincot

+0

@ trincot yes Я хочу сохранить данные обеих таблиц в другие два, поскольку данные test1 войдут в test3, а данные test2 будут в тесте 4. – KD29

ответ

0

Предполагая, что структура таблицы test3 такая же, как test1, а для test4 такая же, как test2, выполните эти инструкции.

INSERT INTO test3 
SELECT * FROM test1 
WHERE Date < DATEPART(month, -3, GETDATE()); 

INSERT INTO test4 
SELECT * FROM test2 
WHERE ID IN (SELECT ID FROM test3); 

DELETE FROM test2 
WHERE ID IN (SELECT ID FROM test3); 

DELETE FROM test1 
WHERE ID IN (SELECT ID FROM test3); 

Не забудьте внести изменения. Если вы создаете скрипт для регулярного запуска, убедитесь, что вы выполняете эти инструкции в транзакционном блоке с помощью COMMIT TRANSACTION в конце.

Смежные вопросы