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

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

Barbara Streisand
Barbara StreisandOriginal
2025-01-07 05:59:45427Durchsuche

How to Delete Data From Multiple SQL Server Tables Using INNER JOIN?

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

In SQL Server können Sie die „gelöschte“ Pseudotabelle verwenden, um eine zu erreichen Ähnlicher Effekt wie die bereitgestellte MySQL-Syntax. Die folgenden Schritte beschreiben, wie Sie mit INNER JOIN aus mehreren Tabellen löschen:

Schritt 1: Öffnen Sie eine Transaktion

begin transaction;

Schritt 2: Erstellen Sie eine temporäre Transaktion Tabelle zum Speichern gelöschter IDs

declare @deletedIds table ( id int );

Schritt 3: Aus Tabelle löschen 1

Diese Abfrage löscht aus Tabelle 1 und gibt die gelöschten IDs in die @deletedIds-Tabelle aus.

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;

Schritt 4: Aus Tabelle 2 löschen

Diese Abfrage löscht aus Tabelle 2 unter Verwendung der in gespeicherten IDs @deletedIds.

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

Schritt 5: Wiederholen Sie den Vorgang für die verbleibenden Tabellen

Wiederholen Sie den Löschvorgang für alle weiteren Tabellen, die geändert werden müssen.

Schritt 6: Übernehmen Sie die Transaktion

commit transaction;

Zusätzliche Hinweise:

  • Sie können eine „Ausgabe gelöscht“ verwenden. -Anweisung im zweiten Löschvorgang, um bei Bedarf die Verknüpfung mit der dritten Tabelle zu ermöglichen.
  • Erwägen Sie die Implementierung von Triggern für die erste Tabelle, um den Löschvorgang aus anderen Tabellen zu automatisieren.

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

Stellungnahme:
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