SQL Server 2008 और नए में एक MERGE कथन है जो ठीक यही करता है।
देखें MERGE पर MSDN पुस्तकें ऑनलाइन डॉक्स विवरण के लिए।
मूल रूप से, आपको चार चीजों की आवश्यकता है:
- एक स्रोत (टेबल या व्यू या इनलाइन सेलेक्ट स्टेटमेंट)
- एक लक्ष्य
- एक शामिल हों शर्त जो दोनों को जोड़ती है
- उन मामलों के लिए विवरण जब कोई MATCH (पंक्तियाँ स्रोत और लक्ष्य दोनों में मौजूद हों), MATCHED नहीं (जब पंक्ति अभी तक लक्ष्य में मौजूद नहीं है) और आगे
तो आप मूल रूप से कुछ इस तरह परिभाषित करते हैं:
MERGE (targettable) AS t
USING (sourcetable) AS s
ON (JOIN condition between s and t)
WHEN MATCHED THEN
UPDATE SET t.Col1 = s.Col1, t.Col2 = s.Col2 (etc.)
WHEN NOT MATCHED THEN
INSERT(Col1, Col2, ..., ColN) VALUES(s.Col1, s.Col2, ......, s.ColN)
यह एक कथन के रूप में किया जाता है और SQL सर्वर द्वारा अत्यधिक अनुकूलित किया जाता है।