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

SQL सर्वर में INSERT INTO SELECT क्वेरी में डुप्लिकेट से बचें

NOT EXISTS का उपयोग करना :

INSERT INTO TABLE_2
  (id, name)
SELECT t1.id,
       t1.name
  FROM TABLE_1 t1
 WHERE NOT EXISTS(SELECT id
                    FROM TABLE_2 t2
                   WHERE t2.id = t1.id)

NOT IN का उपयोग करना :

INSERT INTO TABLE_2
  (id, name)
SELECT t1.id,
       t1.name
  FROM TABLE_1 t1
 WHERE t1.id NOT IN (SELECT id
                       FROM TABLE_2)

LEFT JOIN/IS NULL का उपयोग करना :

INSERT INTO TABLE_2
  (id, name)
   SELECT t1.id,
          t1.name
     FROM TABLE_1 t1
LEFT JOIN TABLE_2 t2 ON t2.id = t1.id
    WHERE t2.id IS NULL

तीन विकल्पों में से, LEFT JOIN/IS NULL कम कुशल है। अधिक विवरण के लिए यह लिंक देखें।



  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 सर्वर पुनरावर्ती क्वेरी

  2. पैरामीटर्स के साथ उपयोग किए जाने पर OR क्लॉज के उपयोग का अनुकूलन कैसे करें (SQL Server 2008)

  3. कैसे जांचें कि SQL सर्वर में एक कंप्यूटेड कॉलम "जारी" है या नहीं?

  4. दिनांक और नल के अनुसार SQL सर्वर ऑर्डर अंतिम

  5. SQL सर्वर में ON DELETE CASCADE के साथ विदेशी कुंजी बाधा कैसे बनाएं - SQL सर्वर / TSQL ट्यूटोरियल भाग 80