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

टी-एसक्यूएल क्या सिंगल फास्ट ऑपरेशन के साथ अपडेट / इंसर्ट करना संभव है

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 सर्वर द्वारा अत्यधिक अनुकूलित किया जाता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 के विरुद्ध चलते समय SqlDataReader.HasRows में कोई बग है?

  2. SQL सर्वर में 'डेटाटाइम' को 'डेटाटाइम 2' में बदलें (T-SQL उदाहरण)

  3. अल्फ़ान्यूमेरिक सॉर्ट

  4. SqlGeometry युक्त डेटाटेबल संग्रहीत कार्यविधि निष्पादन को विफल कर रहा है... क्यों?

  5. SSRS में विशेष टेक्स्ट को बोल्ड करें