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

तीसरी तालिका को अद्यतन करने के लिए SQL सर्वर में मर्ज का उपयोग करना

आपको आउटपुट के अस्थायी संग्रहण की आवश्यकता है मर्ज स्टेटमेंट और एक अपडेट स्टेटमेंट से जो अस्थायी तालिका / तालिका चर का उपयोग करता है।

-- Your table A, B and C
declare @A table(ID int, Col int)
declare @B table(ID int, Col int)
declare @C table(ID int, Col int)

-- Sample data
insert into @A values (1, 1),(2, 2)
insert into @B values (1, 0)
insert into @C values (1, 0),(2, 0)

-- Table var to store ouput from merge
declare @T table(ID int, Col int, Act varchar(10))

-- Merge A -> B
merge @B as B
using @A as A
on A.ID = B.ID
when not matched then insert (ID, Col) values(A.ID, A.Col)
when matched then update set Col = A.Col
output inserted.ID, inserted.Col, $action into @T;

-- Update C with rows that where updated by merge    
update C set
  Col = T.Col
from @C as C
  inner join @T as T
    on C.ID = T.ID and
       T.Act = 'UPDATE'

https://data.stackexchange.com/stackoverflow/qt/119724/



  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. नौकरी निर्यात करते समय SQL सर्वर द्वारा उत्पन्न अजीब स्क्रिप्ट

  3. टाइमस्टैम्प कॉलम में 30 मिनट से अधिक अंतराल का पता लगाएं

  4. क्या लिंक किए गए सर्वर के लिए कोई IF EXISTS परीक्षण है?

  5. SQL सर्वर Asp.Net - लॉगिन विफल