मर्ज करें एक डीएमएल स्टेटमेंट (डेटा मैनिपुलेशन लैंग्वेज) है।
इसे यूपीएसईआरटी (अपडेट-इन्सर्ट) भी कहा जाता है।
यह सोर्स (टेबल/व्यू/क्वेरी) को टारगेट (टेबल/अपडेट करने योग्य व्यू) से मिलाने की कोशिश करता है। आपकी परिभाषित शर्तें और फिर मिलान परिणामों के आधार पर यह लक्ष्य तालिका में/में/में पंक्तियों को सम्मिलित/अपडेट/हटा देता है।
MERGE (ट्रांजैक्ट-एसक्यूएल)
create table src (i int, j int);
create table trg (i int, j int);
insert into src values (1,1),(2,2),(3,3);
insert into trg values (2,20),(3,30),(4,40);
merge into trg
using src
on src.i = trg.i
when not matched by target then insert (i,j) values (src.i,src.j)
when not matched by source then update set trg.j = -1
when matched then update set trg.j = trg.j + src.j
;
select * from trg order by i
+---+----+
| i | j |
+---+----+
| 1 | 1 |
+---+----+
| 2 | 22 |
+---+----+
| 3 | 33 |
+---+----+
| 4 | -1 |
+---+----+
शामिल हों एक ज्वाइन एल्गोरिथम है (जैसे हैश जॉइन या नेस्टेड लूप्स)।
यह पहले दोनों डेटासेट को जॉइन कंडीशन के अनुसार सॉर्ट करने पर आधारित है (शायद इंडेक्स मौजूद होने के कारण पहले से ही सॉर्ट किया गया है) और फिर सॉर्ट किए गए डेटासेट के माध्यम से ट्रैवर्सिंग और मैच ढूंढ रहा है।
create table t1 (i int)
create table t2 (i int)
select * from t1 join t2 on t1.i = t2.i option (merge join)
create table t1 (i int primary key)
create table t2 (i int primary key)
select * from t1 join t2 on t1.i = t2.i option (merge join)
SQL सर्वर में एक प्राथमिक कुंजी का तात्पर्य क्लस्टर इंडेक्स संरचना से है जिसका अर्थ है कि तालिका को बी-ट्री के रूप में संग्रहीत किया जाता है, जिसे प्राथमिक कुंजी द्वारा क्रमबद्ध किया जाता है।