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

T-SQL MERGE - यह पता लगाना कि इसने कौन सी कार्रवाई की

आप तालिका चर में आउटपुट कर सकते हैं और फिर उससे पुनर्प्राप्त कर सकते हैं। इसे आजमाएं:

DECLARE @t table (C1 int, C2 int)
DECLARE @C1 INT, @C2 INT
DECLARE @Output TABLE (DeletedC1 INT, DeletedC2 INT, ActionType VARCHAR(20), InsertedC1 INT, InsertedC2 INT)

set @c1 = 1
set @c2 = 1

MERGE       @t as tgt
USING       (SELECT @C1, @C2) AS src (C1, C2)
ON          (tgt.C1 = src.C1)
    WHEN MATCHED AND tgt.C2 != src.C2 THEN
        UPDATE SET tgt.C2 = src.C2
    WHEN NOT MATCHED BY TARGET THEN
        INSERT VALUES (src.C1, src. C2)
    OUTPUT deleted.*, $action, inserted.* INTO @Output;

SELECT * FROM @Output WHERE ActionType = 'INSERT'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऑड इनर जॉइन सिंटैक्स और एनकैप्सुलेशन

  2. SQL सर्वर:क्या NEWID () हमेशा एक विशिष्ट आईडी देता है?

  3. क्या मुझे SQL सर्वर में थोड़ा सा फ़ील्ड इंडेक्स करना चाहिए?

  4. चेक के साथ बाधा जोड़ें और उसके बाद चेक बाधा बनाम बाधा जोड़ें

  5. इंटरनेट पर एसक्यूएल सर्वर 2005/2008 कनेक्ट करें