怎样快速比较两个表得出增量数据?快呀!!!

netsong 2001-02-09 01:54:00
两个表,一个原表(每天不断追加的),一个备份表。表中没有日期字段,也不能修改
表的结构,还可能没有关键字。怎样快速比较这两个表,从原表中得出当天的增量数据?
...全文
499 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuj0771 2001-02-12
  • 打赏
  • 举报
回复
如果有字段是唯一而且不重复的。
可以使用
select a.fielda
from a
where a.fielda
not in (select b.fielda from b)
3nt 2001-02-12
  • 打赏
  • 举报
回复
假设 a为原表 id 为主键
select b.id,a.id from b left join a on b.id = a.id where a.id is null
yangzi 2001-02-12
  • 打赏
  • 举报
回复
那就不太容易了,添加,或删除的,还好说,修改,我觉得没有办法查出。
netsong 2001-02-12
  • 打赏
  • 举报
回复
原始表不能修改字段(不是我控制),原始表是dbf桌面数据库,没有触发器
cheat 2001-02-09
  • 打赏
  • 举报
回复
用触发器吧
yangzi 2001-02-09
  • 打赏
  • 举报
回复
可以加字段吗?
我建议你在原始表和备份表中各添加一时间字段:对于原始表,表示add或update的时间。
对于备份表,表示原始表中该记录被delete的时间。
并在原始表上建立一个触发器for delele:在备份表中记录该时间。
另建一个触发器for insert , update:在原始表中记录进行此操作的时间。
然后,你只要在原始表和备份表中取时间为当天的记录即可。
netsong 2001-02-09
  • 打赏
  • 举报
回复
to DeD(似水年华):对于联合关键字呢?还有,增量数据中可能有修改的信息呀,也要选出来,
不能简单的作关键字比较;
to yangzi: 用途就是这些:有两个表,一个是含有所有历史数据(包括当天的)的原始表
(dbf),一个是不含当天变更(add/delete/update)数据的备份表(SQL),怎样根据这
两个表挑出当天的变更数据??
yangzi 2001-02-09
  • 打赏
  • 举报
回复
用出你的用途,应该可以不用这种方法解决的。
july 2001-02-09
  • 打赏
  • 举报
回复
无可奈何
DeD 2001-02-09
  • 打赏
  • 举报
回复
假设id是表A和B的主键那么可以通过以下的SQL 实现
select * from a where not id IN (select id from b)
或者
declare @id int
select @id=max(id) from b
select * from a where id>@id

netsong 2001-02-09
  • 打赏
  • 举报
回复
如果有关键字怎么做?
ether 2001-02-09
  • 打赏
  • 举报
回复
最起码要有关键字。
ether 2001-02-09
  • 打赏
  • 举报
回复
这是不可能的。

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧