Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Serveur SQL - suppression récursive

Ce sont les meilleurs et les plus efficaces. Pour les requêtes de production, j'utiliserais 2 .

Les seuls autres moyens auxquels je peux penser ne conviendraient (IMO) qu'à la suppression rapide et sale des données dans un environnement de test (évitant d'avoir à analyser le bon ordre)

  1. Désactiver tous les FK, supprimer les données souhaitées, puis réactiver les FK. Ceci est inefficace car ils doivent être réactivés WITH CHECK pour éviter de laisser les FK dans un état non approuvé, ce qui signifie que toutes les données conservées doivent être revalidées.
  2. Répertorier tous les DELETE instructions sur les tables affectées dans un ordre arbitraire et exécutez le lot autant de fois que nécessaire jusqu'à ce qu'il réussisse sans erreur FK.