差异更新两个表
Posted liangzaian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了差异更新两个表相关的知识,希望对你有一定的参考价值。
CREATE TABLE Temp_A ( Emp_No VARCHAR(7) , Emp_Name VARCHAR(20) ) CREATE TABLE Temp_B ( Emp_No VARCHAR(7) , Emp_Name VARCHAR(20) ) INSERT INTO Temp_A VALUES ( ‘0000001‘, ‘张飞‘ ) INSERT INTO Temp_A VALUES ( ‘0000002‘, ‘吕布‘ ) INSERT INTO Temp_A VALUES ( ‘0000003‘, ‘关羽‘ ) INSERT INTO Temp_A VALUES ( ‘0000004‘, ‘貂蝉‘ ) INSERT INTO Temp_A VALUES ( ‘0000005‘, ‘孙权‘ ) INSERT INTO Temp_B SELECT TOP 4 * FROM Temp_A -- 使用Merge更新表 MERGE INTO Temp_B b USING Temp_A a ON a.Emp_No = b.Emp_No --WHEN MATCHED --THEN UPDATE SET b.Emp_Name=a.Emp_Name WHEN NOT MATCHED THEN INSERT VALUES ( a.Emp_No, a.Emp_Name ); -- 使用EXISTS找出A表中存在, B表中不存在的 INSERT INTO Temp_B SELECT * FROM Temp_A a WHERE NOT EXISTS ( SELECT * FROM Temp_B b WHERE a.Emp_No = b.Emp_No ) -- 更新B表中和A表中工号一样的员工姓名 注意 更新的表需要用全名 UPDATE Temp_B SET Temp_B.Emp_Name = a.Emp_Name FROM Temp_A a WHERE a.Emp_No = Temp_B.Emp_No
以上是关于差异更新两个表的主要内容,如果未能解决你的问题,请参考以下文章