论坛里哪位高手帮忙写个触发器,需求如下:
有一张企业信息表:tb_ods_qyxx,字段包括
qybm(企业编码)
qymc(企业名称)
zcdz(注册地址)
jydz(经营地址)
fddbr(法定代表人)
zczb(注册资本)
hy(行业)这张表tb_ods_qyxx每月都要插入新的数据,新的数据中包括新的企业信息和原有企业信息变更的情况,要求插入新数据的时候,将企业各字段都更新为最新的
比如:原表:
qybm qymc zcdz jydz fddbr zczb hy
0001 新乐房地产公司 黄河道20号 黄河道 20号 张三 50万元 房地产业新数据:
qybm qymc zcdz jydz fddbr zczb hy
0001 新乐房地产公司01 长江道22号 长江道 22号 李四 80万元 建筑业新数据插入的同时,要求根据新数据,更新原有旧数据谢谢大家啦!
有一张企业信息表:tb_ods_qyxx,字段包括
qybm(企业编码)
qymc(企业名称)
zcdz(注册地址)
jydz(经营地址)
fddbr(法定代表人)
zczb(注册资本)
hy(行业)这张表tb_ods_qyxx每月都要插入新的数据,新的数据中包括新的企业信息和原有企业信息变更的情况,要求插入新数据的时候,将企业各字段都更新为最新的
比如:原表:
qybm qymc zcdz jydz fddbr zczb hy
0001 新乐房地产公司 黄河道20号 黄河道 20号 张三 50万元 房地产业新数据:
qybm qymc zcdz jydz fddbr zczb hy
0001 新乐房地产公司01 长江道22号 长江道 22号 李四 80万元 建筑业新数据插入的同时,要求根据新数据,更新原有旧数据谢谢大家啦!
--将每个月的新数据放在一个表里面,使用merge into 语句来更新表:
--1.先建立一个新数据表:
create table new_data(
......
)
--字段与tb_ods_qyxx表相同
--下面使用merge into语句来更新表tb_ods_qyxx
merge into tb_ods_qyxx a
using new_data on b
(a.qybm=b.qybm)
when matched then
update
set a.qymc=b.qymc
,a.zcdz=b.zcdz
,a.jydz=b.jydz
,a.fddbr=b.fddbr
,a.zczb=b.zczb
,a.hy=b.hy
when not matched then
insert (
a.qybm,a.qymc,a.zcdz,a.jydz,a.fddbr,a.zczb,a.hy)
values (
b.qybm,b.qymc,b.zcdz,b.jydz,b.fddbr,b.zczb,b.hy)
;
--更新表tb_ods_qyxx成功后,truncate table new_data,用于下一次接收数据