Maison >base de données >tutoriel mysql >Comment supprimer des données de plusieurs tables SQL Server à l'aide d'INNER JOIN ?

Comment supprimer des données de plusieurs tables SQL Server à l'aide d'INNER JOIN ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-07 05:59:45460parcourir

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

Suppression de plusieurs tables avec INNER JOIN dans SQL Server

Dans SQL Server, vous pouvez utiliser la pseudo-table "supprimée" pour obtenir un effet similaire à celui de la syntaxe MySQL fournie. Les étapes suivantes expliquent comment supprimer de plusieurs tables à l'aide de INNER JOIN :

Étape 1 : Ouvrir une transaction

begin transaction;

Étape 2 : Créer une transaction temporaire Table pour stocker les identifiants supprimés

declare @deletedIds table ( id int );

Étape 3 : Supprimer de la table 1

Cette requête supprime du tableau 1 et affiche les identifiants supprimés dans la table @deletedIds.

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;

Étape 4 : Supprimer du tableau 2

Cette requête supprime du tableau 2 en utilisant les identifiants stockés dans @deletedIds.

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

Étape 5 : Répétez pour les tables restantes

Répétez le processus de suppression pour toutes les tables supplémentaires qui doivent être modifiées.

Étape 6 : valider le Transaction

commit transaction;

Remarques supplémentaires :

  • Vous pouvez utiliser une « sortie supprimée ». instruction dans la deuxième suppression pour permettre la jointure sur la troisième table si nécessaire.
  • Envisagez d'implémenter des déclencheurs sur la première table pour automatiser le processus de suppression des autres tables.

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!

Déclaration:
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