根据30天的数据范围删除归档数据

时间:2018-12-31 01:18:58

标签: sql sql-server-2008-r2 archiving

我在服务器中有2个sql实例。 1个名为TRC(在线数据库),另一个名为TRC_ARC(归档数据库)。

我已根据最早的EntryDate成功将30天的数据从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

如何从TRC删除30天的存档数据?因为我尝试使用下面的查询,但是它返回受影响的另一行。

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 :(得分:0)

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

最好的问候

瑞秋