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

SQL सर्वर में एकल पंक्ति MERGE/अप्सर्ट के लिए सिंटैक्स

अंत में मुझे MERGE . का उपयोग करके अप्सर्ट सिंटैक्स मिला SQL सर्वर 2008 में। जैकब चाहता था का उपयोग करना करने के लिए (एक अप्सर्ट):

IF EXISTS(SELECT * FROM member_topic WHERE mt_member = 0 AND mt_topic = 110)
BEGIN
    --update existing row
    UPDATE member_topic SET mt_notes = 'test'
    WHERE mt_member = 0
    AND mt_topic = 110
END
ELSE
BEGIN
    --insert new row
    INSERT INTO member_topic (mt_member, mt_topic, mt_notes)
    VALUES (0, 110, 'test')
END

समतुल्य MERGE सिंटैक्स है:

MERGE member_topic
USING ( 
    VALUES (0, 110, 'test')
) AS foo (mt_member, mt_topic, mt_notes) 
ON member_topic.mt_member = foo.mt_member 
   AND member_topic.mt_topic = foo.mt_topic
WHEN MATCHED THEN
   UPDATE SET mt_notes = foo.mt_notes
WHEN NOT MATCHED THEN
   INSERT (mt_member, mt_topic, mt_notes)
   VALUES (foo.mt_member, foo.mt_topic, foo.mt_notes)
; --A MERGE statement must be terminated by a semi-colon (;).


  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. मैं जावा/जेएसपी में एक एमएस एसक्यूएल सर्वर संग्रहीत प्रक्रिया को कैसे निष्पादित करूं, तालिका डेटा लौटा रहा हूं?

  3. बेसिक pyodbc बल्क इंसर्ट

  4. जहां SQL सर्वर टेक्स्ट डेटा प्रकार पर क्लॉज

  5. प्रोएक्टिव SQL सर्वर स्वास्थ्य जाँच, भाग 1 :डिस्क स्थान