Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Server SQL:eliminazione ricorsiva

Quelli sono i migliori e più efficienti. Per le domande di produzione userei 2 .

L'unico altro modo che mi viene in mente sarebbe (IMO) adatto solo per la rimozione rapida e sporca di dati in un ambiente di test (evitando la necessità di analizzare l'ordine corretto)

  1. Disabilita tutti gli FK elimina i dati desiderati, quindi riattiva gli FK. Questo è inefficiente in quanto devono essere riabilitati WITH CHECK per evitare di lasciare gli FK in uno stato non attendibile, il che significa che tutti i dati conservati devono essere riconvalidati.
  2. Elenca tutti i DELETE istruzioni sulle tabelle interessate in ordine arbitrario ed eseguire il batch tutte le volte necessarie finché non riesce senza errori FK.