【发布时间】:2018-12-31 01:18:57
【问题描述】:
我在服务器中有 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
【问题讨论】:
-
好吧,如果
T_TRC_AssyPoka表中的基础数据可能会发生变化(即新记录到来或其他进程删除记录),那么目标记录的数量可能会有所不同。 -
亲爱的 Tim,由于工厂关闭,在归档活动期间该表没有任何事务。所以我很确定不会有新的记录出现。
-
您的
INSERT INTO ... SELECT是使用 same 表,T_TRC_AssyPoke用于 source 和 destination。我很确定您打算从T_AssyPoka复制到T_TRC_AssyPoka。 -
什么是数据库?看起来像 SQL Server 或 Sybase。
-
Tim,是同名表,但由于sql实例不同,来源不同。我的意思是,已经归档到归档表(TRC_ARC.dbo.T_TRC_AssyPoka)的源表数据(TRC.dbo.T_TRC_AssyPoka)完全按照归档方式从源表中删除。
标签: sql sql-server-2008-r2 archiving