----------------------
?
GO
--DROP PROC Get_NewInfo?
CREATE ?PROC Get_NewInfo
?AS
?BEGIN ??
?-------------------------------------------------------情况一:更新老编码对应的年龄信息
? ? ?if((select COUNT(*) from Differrence_Data)>0)
? ? -------------------------如果在视图Differrence_Data中存在数据,那么更新相应的老编码信息
? ? ?UPDATE Report_Rpt SET Age=A.Age FROM Differrence_Data A WHERE A.Old_IdSeq=Report_Rpt.IdSeq
? ? ?
? ? ?IF ( ?(select COUNT(1) from TB_New where IdSeq not in?
? ? ? ? ? ? ? (SELECT New_IdSeq ?FROM Mapping?
? ? ? ? ? ? ? ?union all
? ? ? ? ? ? ? ?select IdSeq FROM Report_Rpt
? ? ? ? ? ? ? )
? ? ? ? ? ? ) >0
? ? ? ? ?)
? ? ? ? ?-------------------------------------------------情况二:将新增的数据插入到上报表中
? ? ? ? ?---插入新增的数据到上报信息表中?
? ? ? ? ?insert into Report_Rpt ?
? ? ? ? ?select * from TB_New A WHERE A.IdSeq NOT IN (SELECT New_IdSeq FROM Mapping
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?UNION all
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? select IdSeq FROM Report_Rpt)
? ? ? ??
? ? ? ? ? ------------------------------------------------情况三:更新新编码对应的年龄信息
? ? ? ? ? IF ? (
? ? ? ? ? ? ? ? ? (SELECT COUNT(1) FROM ?TB_New WHERE?
? ? ? ? ? ? ? ? ? ? ? ? ?IdSeq not in?
? ? ? ? ? ? ? ? ? ? ? ? (select New_IdSeq from Mapping)
? ? ? ? ? ? ? ? ? ? ? ? ?AND IdSeq IN?
? ? ? ? ? ? ? ? ? ? ? ? (SELECT IdSeq FROM Report_Rpt)
? ? ? ? ? ? ? ? ? ?)>0
? ? ? ? ? ? ? ? )
? ? ? ? ? ? --------------------更新新增加数据年龄变更的信息
? ? ? ? ? ? UPDATE Report_Rpt SET Age=A.Age FROM ?TB_New A WHERE?
? ? ? ? ? ? ? ? ? ? A.IdSeq not in?
? ? ? ? ? ? ? ? ? ? (select New_IdSeq from Mapping)?
? ? ? ? ? ? ? ? ? ? AND A.IdSeq IN?
? ? ? ? ? ? ? ? ? ? (SELECT IdSeq FROM Report_Rpt)?
? ? ? ? ? ? ? ? ? ? AND A.IdSeq = Report_Rpt.IdSeq ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?END
?
?--执行存储过程
?EXEC Get_NewInfo
?
?
?
?--老人力资源表
?select * from TB_old
?--新人力资源表
?select * from TB_New
?--映射表
?select * from Mapping
?--上报表
?select * from Report_Rpt
?--------------------------------------------
?--删除表语句
?--DROP TABLE TB_old,TB_New,Mapping,Report_Rpt
?
?--------------------------------以下是测试老编码年龄变化跟新编码年龄变化还有新增新的人员信息时,是否也会更新跟插入相应的数据
?
--------------------------------------改变新人力资源系统中的数据进行逻辑测试
insert into TB_New SELECT 7,'China07','测试01','云南昆明',21 ?union all
? ? ? ? ? ? ? ? ? ?SELECT 8,'China08','测试02','云南昆明',33
?---------------修改新数据进行测试 ?
update TB_New set Age='100' where Id='6'
?---------------修改老数据的年龄进行测试
update TB_New set Age='100' where Id='1'
?