Heim > Datenbank > MySQL-Tutorial > Wie lösche ich mit INNER JOIN aus mehreren Tabellen in SQL Server?

Wie lösche ich mit INNER JOIN aus mehreren Tabellen in SQL Server?

Mary-Kate Olsen
Freigeben: 2025-01-07 06:51:43
Original
999 Leute haben es durchsucht

How to Delete from Multiple Tables in SQL Server Using INNER JOIN?

Löschen aus mehreren Tabellen mit INNER JOIN in SQL Server

Im Gegensatz zu MySQL unterstützt SQL Server die Syntax zum Löschen aus mehreren Tabellen nicht mit INNER JOIN. Es gibt jedoch alternative Methoden, um das gleiche Ergebnis zu erzielen.

Verwendung der „gelöschten“ Pseudotabelle

Betrachten Sie das folgende Codebeispiel:

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;
Nach dem Login kopieren

Dieser Code verwendet die Pseudotabelle „gelöscht“, um die gelöschten IDs aus der ersten Löschanweisung zu speichern. Diese IDs werden dann in nachfolgenden Löschanweisungen verwendet, um die entsprechenden Zeilen aus anderen Tabellen zu löschen.

Weitere Überlegungen

  • Sie können auch „Ausgabe gelöscht“ verwenden. in der zweiten Löschanweisung, wenn dies für die Verknüpfung mit einer dritten Tabelle erforderlich ist.
  • Erwägen Sie die Verwendung von Triggern für die übergeordnete Tabelle (z. B. Tabelle1), um bei Bedarf automatisch Zeilen aus den untergeordneten Tabellen (z. B. Tabelle2 und Tabelle3) zu löschen. Dieser Ansatz bietet eine bequeme und effiziente Möglichkeit, die Datenintegrität über mehrere Tabellen hinweg aufrechtzuerhalten.

Das obige ist der detaillierte Inhalt vonWie lösche ich mit INNER JOIN aus mehreren Tabellen in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage