Suppression de plusieurs tables avec INNER JOIN dans SQL Server
Dans MySQL, la suppression de plusieurs tables à l'aide de INNER JOIN peut être effectuée avec la syntaxe :
DELETE t1,t2 FROM table1 AS t1 INNER JOIN table2 t2 ... INNER JOIN table3 t3 ...
Cependant, SQL Server ne prend pas en charge cette syntaxe. Au lieu de cela, vous pouvez utiliser la pseudo-table "supprimée" pour obtenir un résultat similaire :
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;
En utilisant la pseudo-table "deleted.id", vous pouvez effectuer une suppression en cascade sur les tables associées, garantissant ainsi que les données intégrité.
Alternative Approches :
En fin de compte, la plupart l'approche appropriée dépend des exigences spécifiques de votre système.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!