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 ...
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;
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:
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!