Maison > base de données > tutoriel mysql > Comment supprimer de plusieurs tables avec INNER JOIN dans SQL Server ?

Comment supprimer de plusieurs tables avec INNER JOIN dans SQL Server ?

Patricia Arquette
Libérer: 2025-01-07 00:11:41
original
998 Les gens l'ont consulté

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

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 ...
Copier après la connexion

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;
Copier après la connexion

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 :

  • Déclencheurs : Vous pouvez créer un déclencheur sur la table1 qui supprime automatiquement les lignes des tables associées (table2 et table3). Cela garantit la cohérence mais nécessite une configuration supplémentaire.
  • Clés étrangères en cascade : Configurez les clés étrangères en cascade entre les tables impliquées pour gérer automatiquement les suppressions.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal