Удаление архивных данных на основе диапазона данных за 30 дней - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть 2 sql экземпляр на сервере.1 с именем TRC (онлайн-база данных), еще один TRC_ARC (архивирование базы данных).

Я успешно перенес данные за 30 дней на основе самой старой EntryDate из TRC в TRC_ARC.

Запрос:

use TRC_ARC
--T_TRC_AssyPoka Table
declare @MaxNo datetime = (select max(EntryDate) from T_TRC_AssyPoka) --date max current archived table
insert into TRC_ARC.dbo.T_TRC_AssyPoka --destination
select * from TRC.dbo.T_TRC_AssyPoka --source
where EntryDate > @MaxNo --source entrydate > date max current archived table
and DateDiff(D, @MaxNo, EntryDate) < 30 -- date range 30 days

Как удалить архивированные данные за 30 дней изTRC?Потому что я попытался использовать приведенный ниже запрос, но он возвращает другую затронутую строку.

use TRC_ARC
--T_TRC_AssyPoka Table
declare @MaxNo datetime = (select max(EntryDate) from T_TRC_AssyPoka) --date max current archived table
**delete from TRC.dbo.T_TRC_AssyPoka** --destination
select * from TRC.dbo.T_TRC_AssyPoka --source
where EntryDate > @MaxNo --source entrydate > date max current archived table
and DateDiff(D, @MaxNo, EntryDate) < 30 -- date range 30 days

1 Ответ

0 голосов
/ 02 января 2019
use TRC_ARC
--T_TRC_AssyPoka Table
declare @MaxNo datetime = (select max(EntryDate) from T_TRC_AssyPoka) --date max current archived table
**delete from TRC.dbo.T_TRC_AssyPoka** --destination
select * from TRC.dbo.T_TRC_AssyPoka --source
where EntryDate > @MaxNo --source entrydate > date max current archived table
and DateDiff(D, @MaxNo, EntryDate) < 30 -- date range 30 days

Согласно вашему описанию выше, я понимаю, что вы хотели бы удалить строки, которые были вставлены в таблицу 'TRC_ARC.dbo.T_TRC_AssyPoka'.Правильно?

Если это так, вы можете попробовать следующий скрипт.

use TRC_ARC
    --T_TRC_AssyPoka Table
    declare @MaxNo datetime = (select max(EntryDate) from T_TRC_AssyPoka) --date max current archived table
    delete from TRC.dbo.T_TRC_AssyPoka
    where EntryDate > @MaxNo --source entrydate > date max current archived table
    and DateDiff(D, @MaxNo, EntryDate) < 30 -- date range 30 days

С наилучшими пожеланиями,

Рейчел

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...