设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2303|回复: 4
打印 上一主题 下一主题

sql server 如何用联合查询更新到一张数据表

[复制链接]
1#
发表于 2020-3-25 22:24:18 | 显示全部楼层
第一种方式:
insert into 表4
select …… from 表1
union
select …… from 表2
union
…………

select …… from 表n
如果觉得这样仍然有重复数据,可以考虑嵌套一下,加上distinct或者group by
例如:
insert into 表4
select distinct id,字段1,字段2……from (
select …… from 表1
union
select …… from 表2
union
…………

select …… from 表n) a


-------------------------------这里是分割线-------------------------------

第二种方式:
步骤1:插入不重复的基准数据。
insert into 表4(sid)
select id from 表1
union
select id from 表2
union
……
select id from 表n

步骤2:更新必要的字段
update 表4 set 表4.字段1=表1.字段1
from 表1 where 表4.sid=表1.id

update 表4 set 表4.字段2=表1.字段2
from 表1 where 表4.sid=表1.id

……
update 表4 set 表4.字段n=表1.字段n
from 表1 where 表4.sid=表1.id

直至把表4需要更新的字段更新完毕

步骤3:对表2,表3……表n重复步骤2,直至把所有表的字段更新完毕。

2#
发表于 2020-3-30 16:19:47 | 显示全部楼层
把存储过程写好,定期执行就好了。事实上,你应该评估实际业务情况是否需要实时,还是说可以T+1。
一直挂着作业,每过一分钟执行一次可不是什么好事。
最后一条,如果你的数据源太多的话,不妨考虑下重新修改下表结构。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-4 03:58 , Processed in 0.082087 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表