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

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

Patricia Arquette
Freigeben: 2025-01-07 00:11:41
Original
998 Leute haben es durchsucht

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

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

In MySQL kann das Löschen aus mehreren Tabellen mit INNER JOIN mit der Syntax durchgeführt werden :

DELETE t1,t2 
FROM table1 AS t1 
INNER JOIN table2 t2 ...
INNER JOIN table3 t3 ...
Nach dem Login kopieren

SQL Server unterstützt diese Syntax jedoch nicht. Stattdessen können Sie die Pseudotabelle „gelöscht“ verwenden, um ein ähnliches Ergebnis zu erzielen:

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

Durch die Verwendung der Pseudotabelle „deleted.id“ können Sie eine kaskadierende Löschung für verknüpfte Tabellen durchführen und so die Daten sicherstellen Integrität.

Alternative Ansätze:

  • Trigger: Sie können einen Trigger für Tabelle1 erstellen, der automatisch Zeilen aus verwandten Tabellen (Tabelle2 und Tabelle3) löscht. Dies stellt die Konsistenz sicher, erfordert jedoch zusätzliche Konfiguration.
  • Kaskadierende Fremdschlüssel: Konfigurieren Sie kaskadierende Fremdschlüssel zwischen den beteiligten Tabellen, um Löschungen automatisch zu verarbeiten.

Letztendlich die meisten Der geeignete Ansatz hängt von den spezifischen Anforderungen Ihres Systems ab.

Das obige ist der detaillierte Inhalt vonWie lösche ich aus mehreren Tabellen mit INNER JOIN 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