Heim > Datenbank > MySQL-Tutorial > Wie lösche ich Datensätze aus mehreren SQL Server-Tabellen mithilfe von INNER JOIN?

Wie lösche ich Datensätze aus mehreren SQL Server-Tabellen mithilfe von INNER JOIN?

Barbara Streisand
Freigeben: 2025-01-07 07:10:40
Original
980 Leute haben es durchsucht

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

Löschen von Datensätzen aus mehreren Tabellen mit INNER JOIN in SQL Server

Im Gegensatz zu MySQL unterstützt SQL Server die zum Löschen von Datensätzen verwendete Syntax nicht direkt aus mehreren Tabellen mit einem INNER JOIN. Eine Problemumgehung kann jedoch durch die Nutzung der „gelöschten“ Pseudotabelle erreicht werden.

Schritt 1: Initialisieren Sie eine temporäre Tabelle zum Speichern gelöschter IDs

begin transaction;

declare @deletedIds table ( id int );
Nach dem Login kopieren

Schritt 2: Aus der ersten Tabelle löschen und Ausgabe gelöscht IDs

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

Schritt 3: Aus der zweiten Tabelle mithilfe der temporären Tabelle löschen

delete from t2
from table2 as t2
inner join @deletedIds as d
  on d.id = t2.id;
Nach dem Login kopieren

Schritt 4: Aus zusätzlichen Tabellen löschen (Optional)

delete from t3
from table3 as t3 ...
Nach dem Login kopieren

Schritt 5: Übernehmen Sie die Transaktion

commit transaction;
Nach dem Login kopieren

Hinweis: Durch die Ausgabe gelöschter IDs aus der ersten Löschung können Sie bei nachfolgenden Löschungen mit der Teilnahme fortfahren.

Alternativer Ansatz: Auslöser

Alternativ können Sie Trigger für die erste Tabelle erstellen, um das Löschen verwandter Elemente zu verarbeiten Datensätze in anderen Tabellen. Dieser Ansatz stellt die Datenintegrität innerhalb einer impliziten Transaktion sicher. Es erfordert jedoch eine zusätzliche Triggerwartung und unterstützt komplexe Join-Bedingungen nicht ohne weiteres.

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

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