แหล่งรวบรวมขั้นตอนการเขียนโปรแกรม ตัวอย่างโค้ด แนวทางเขียนโปรแกรม เทคนิคต่างๆมากมาย

March 8, 2011

การใช้ MERGE SQL

    คำสั่ง MERGE นั้น ไว้ใช้สำหรับการที่ไม่แน่ใจว่า RECORD ตามเงื่อนไขมีอยู่หรือไม่ ถ้าไม่มีก็จะเป็นการ INSERT RECORD แต่ถ้า RECORD นั้นๆ มีอยู่แล้วก็จะทำการ UPDATE RECORD นั้นๆ หรือเราจะรู้ักอีกในชื่อนึงคือ Upsert โดยกรณีที่ row นั้นมี data ใหม่ ซึ่งใน row นั้นมี data อยู่แล้ว MERGE จะทำการ Update data ให้ แต่ในกรณีที่ Primary key ของ row นั้นไม่มี MERGE ก็จะทำการ INSERT ให้แทน ซึ่ง Microsoft อธิบายว่า MERGE statement ใน SQL Server 2008 เป็น ANSI-standard MERGE statement และมีการใช้ใน Oracle ตั้งแต่ Oracle 9i

Code :
MERGE INTO t1 -- main table
USING t2 -- prepare table
ON (t1.id= t2.id) -- condition by key
WHEN MATCHED THEN
UPDATE SET t1.name= t2.name
WHEN NOT MATCHED THEN
INSERT
-- column main table
(t1.id, t1.name, t1.email)
VALUES
-- value from prepare table
(t2.id, t2.name, t2.email);


No comments:

Post a Comment