Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में मर्ज और मर्ज समान है?

मर्ज करें एक डीएमएल स्टेटमेंट (डेटा मैनिपुलेशन लैंग्वेज) है।
इसे यूपीएसईआरटी (अपडेट-इन्सर्ट) भी कहा जाता है।
यह सोर्स (टेबल/व्यू/क्वेरी) को टारगेट (टेबल/अपडेट करने योग्य व्यू) से मिलाने की कोशिश करता है। आपकी परिभाषित शर्तें और फिर मिलान परिणामों के आधार पर यह लक्ष्य तालिका में/में/में पंक्तियों को सम्मिलित/अपडेट/हटा देता है।
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 सर्वर में एक प्राथमिक कुंजी का तात्पर्य क्लस्टर इंडेक्स संरचना से है जिसका अर्थ है कि तालिका को बी-ट्री के रूप में संग्रहीत किया जाता है, जिसे प्राथमिक कुंजी द्वारा क्रमबद्ध किया जाता है।

मर्ज जॉइन को समझना




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. C# .NET (SQL सर्वर) में तैयार किए गए कथन का सही ढंग से और कुशलता से पुन:उपयोग कैसे करें?

  2. Sql सर्वर नियतात्मक उपयोगकर्ता-परिभाषित फ़ंक्शन

  3. त्रुटि 28000:pyodbc के साथ DOMAIN\\user उपयोगकर्ता के लिए लॉगिन विफल रहा

  4. एक डेटाबेस मेल प्रोफाइल बनाएं (SSMS)

  5. xquery value() विधि काम नहीं कर रही है और त्रुटि दे रही है