我要拿A資料庫的A'資料表當作source
去跨資料庫的A'資料表
找出其中的差異並update或是source有但A'沒有要INSERT
如果用Left join去撰寫語法 要怎麼下手
SELECT A.*
FROM [DBTEST].[xxxx].[dbo].[xxxx]AS A LEFT JOIN [xxx].[dbo].[xxx] AS B ON A.ABC=B.ABC
WHERE A.Id=B.Id
這是找出兩邊一樣的
剩下的要怎麼拼出邏輯????
MS SQL 的話還可以考慮使用 Merge
https://technet.microsoft.com/zh-tw/library/bb522522(v=sql.105).aspx
MERGE A
USING B
ON (A.ID = B.ID)
WHEN NOT MATCHED BY TARGET
THEN INSERT(ID, ABC) VALUES(B.ID, B.ABC)
WHEN MATCHED AND A.ABC <> B.ABC
THEN UPDATE SET A.ABC = B.ABC;
以MS-SQL 為例
設 TABLE 只有3個欄位. A1,A2,A3 , A1 為 唯一鍵值 .
缺資料 :
insert A (A1,A2,A3)
select A.A1,A.A2,A.A3
from DB1..A as A left join A as B on A.A1=B.A1
where B.A1 is null
不同的 :
UPDATE A SET A2=A.A2 , A3=A.A3
FROM DB1..A as A left join A as B on A.A1=B.A1
where (B.A2 <> A.A2) OR (B.A3 <> A.A3)