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

SQL सर्वर में INNER JOIN का उपयोग करके मैं एकाधिक तालिकाओं से कैसे हटाऊं?

आप इस उदाहरण में "हटाई गई" छद्म तालिका का लाभ उठा सकते हैं। कुछ इस तरह:

begin transaction;

   declare @deletedIds table ( id int );

   delete from t1
   output deleted.id into @deletedIds
   from table1 as t1
    inner join table2 as t2
      on t2.id = t1.id
    inner join table3 as t3
      on t3.id = t2.id;

   delete from t2
   from table2 as t2
    inner join @deletedIds as d
      on d.id = t2.id;

   delete from t3
   from table3 as t3 ...

commit transaction;

जाहिर है आप 'आउटपुट डिलीट' कर सकते हैं। दूसरे डिलीट पर भी, अगर आपको तीसरी टेबल में शामिल होने के लिए कुछ चाहिए।

एक साइड नोट के रूप में, आप इन्सर्ट भी कर सकते हैं।* एक इंसर्ट स्टेटमेंट पर, और दोनों इन्सर्ट।* और डिलीट।* एक अपडेट स्टेटमेंट पर।

संपादित करें: साथ ही, क्या आपने तालिका 2 + 3 से हटाने के लिए तालिका 1 पर ट्रिगर जोड़ने पर विचार किया है? आप एक निहित लेन-देन के अंदर होंगे, और आपके पास "सम्मिलित." और "हटाया" भी होगा। "छद्म सारणियां उपलब्ध हैं।



  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. अग्रणी शून्य के साथ एक स्ट्रिंग को पैड करें ताकि यह SQL Server 2008 में 3 वर्ण लंबा हो

  4. SQL सर्वर डेटाबेस स्नैपशॉट -4

  5. SQL सर्वर में एस्केप कैरेक्टर