Това са най-добрите и най-ефективните. За производствени заявки бих използвал 2
.
Единствените други начини, за които се сещам, биха (IMO) били подходящи само за бързо и мръсно премахване на данни в тестова среда (избягвайки необходимостта от анализ на правилния ред)
- Деактивирайте всички FK, изтрийте желаните данни, след което активирайте отново FK. Това е неефективно, тъй като те трябва да бъдат активирани отново
WITH CHECK
за да се избегне оставянето на FK в ненадеждно състояние, което означава, че всички запазени данни трябва да бъдат повторно потвърдени. - Избройте всички
DELETE
изрази върху засегнатите таблици в произволен ред и стартирайте пакета толкова пъти, колкото е необходимо, докато успее без FK грешки.