sql >> Base de Datos >  >> RDS >> Sqlserver

Servidor Sql - eliminación recursiva

Esos son los mejores y más eficientes. Para consultas de producción, usaría 2 .

Las únicas otras formas en las que puedo pensar serían (en mi opinión) solo adecuadas para la eliminación rápida y sucia de datos en un entorno de prueba (evitando la necesidad de analizar el orden correcto)

  1. Deshabilitar todos los FK, eliminar los datos deseados y luego volver a habilitar los FK. Esto es ineficiente ya que deben volver a habilitarse WITH CHECK para evitar dejar los FK en un estado no confiable, lo que significa que todos los datos conservados deben volver a validarse.
  2. Enumere todos los DELETE declaraciones en las tablas afectadas en orden arbitrario y ejecute el lote tantas veces como sea necesario hasta que se realice correctamente sin errores FK.