-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= IF OBJECT_ID('sp_DeleteAllTTF', 'P') IS NOT NULL BEGIN DROP PROCEDURE sp_DeleteAllTTF END GO CREATE PROCEDURE [sp_DeleteAllTTF] @feladatellatasiHely int = null, @tanevID int AS BEGIN SET NOCOUNT ON; IF @feladatellatasiHely IS NULL BEGIN DELETE FROM T_FOGLALKOZASOK_TANAROK WHERE C_FOGLALKOZASOKID IN ( SELECT ID FROM T_FOGLALKOZAS_OSSZES f WHERE NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID) AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID) AND NOT EXISTS (SELECT 1 FROM T_TEREM_FOGLALKOZAS_OSSZES WHERE f.ID = C_FOGLALKOZASID) AND NOT EXISTS (SELECT 1 FROM T_TANULOTARGYMULASZTASSTATISZT_OSSZES WHERE f.ID = C_TARGYMULASZTASSTATISZTIKAIID) AND f.C_IMPORTALT = 'T' AND f.C_TANEVID = @tanevID ) DELETE FROM T_FOGLALKOZAS WHERE ID IN ( SELECT ID FROM T_FOGLALKOZAS_OSSZES f WHERE NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID) AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID) AND NOT EXISTS (SELECT 1 FROM T_TEREM_FOGLALKOZAS_OSSZES WHERE f.ID = C_FOGLALKOZASID) AND NOT EXISTS (SELECT 1 FROM T_TANULOTARGYMULASZTASSTATISZT_OSSZES WHERE f.ID = C_TARGYMULASZTASSTATISZTIKAIID) AND f.C_IMPORTALT = 'T' AND f.C_TANEVID = @tanevID ) END ELSE BEGIN -- Csak a megadott feladatellátási helyen töröl DELETE FROM T_FOGLALKOZASOK_TANAROK WHERE C_FOGLALKOZASOKID IN ( SELECT ID FROM T_FOGLALKOZAS_OSSZES f WHERE NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID) AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID) AND NOT EXISTS (SELECT 1 FROM T_TEREM_FOGLALKOZAS_OSSZES WHERE f.ID = C_FOGLALKOZASID) AND NOT EXISTS (SELECT 1 FROM T_TANULOTARGYMULASZTASSTATISZT_OSSZES WHERE f.ID = C_TARGYMULASZTASSTATISZTIKAIID) AND f.C_IMPORTALT = 'T' AND f.C_OSZTALYCSOPORTID IN ( SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE C_FELADATELLATASIHELYID = @feladatellatasiHely and C_TANEVID = @tanevID ) AND f.C_TANEVID = @tanevID ) DELETE FROM T_FOGLALKOZAS WHERE ID IN ( SELECT ID FROM T_FOGLALKOZAS_OSSZES f WHERE NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID) AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID) AND NOT EXISTS (SELECT 1 FROM T_TEREM_FOGLALKOZAS_OSSZES WHERE f.ID = C_FOGLALKOZASID) AND NOT EXISTS (SELECT 1 FROM T_TANULOTARGYMULASZTASSTATISZT_OSSZES WHERE f.ID = C_TARGYMULASZTASSTATISZTIKAIID) AND f.C_IMPORTALT = 'T' AND f.C_OSZTALYCSOPORTID IN ( SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE C_FELADATELLATASIHELYID = @feladatellatasiHely and C_TANEVID = @tanevID ) AND f.C_TANEVID = @tanevID ) END -- ENDIF /* * Innentől nem kell figyelni a feladatellátási helyet, * mert a NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS szerepel mindenütt */ DELETE t FROM T_TANTARGY t WHERE NOT EXISTS (SELECT 1 FROM T_ORATERVTARGY_OSSZES WHERE C_TANTARGYID = t.ID) AND NOT EXISTS (SELECT 1 FROM T_TANARITANTARGY_OSSZES WHERE C_TANTARGYID = t.ID) AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE C_TANTARGYID = t.ID) AND NOT EXISTS (SELECT 1 FROM T_TANMENET_OSSZES WHERE C_TANTARGYID = t.ID) AND NOT EXISTS (SELECT 1 FROM T_TANULOERTEKELES_OSSZES WHERE C_TANTARGYID = t.ID) AND NOT EXISTS (SELECT 1 FROM T_TANULOESEMENY_OSSZES WHERE C_TANTARGYID = t.ID) AND NOT EXISTS (SELECT 1 FROM T_TANULOMENTESSEG_OSSZES WHERE C_TANTARGYID = t.ID) AND NOT EXISTS (SELECT 1 FROM T_TANTARGY_OSSZES WHERE C_FOTARGYID = t.ID) AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_TANTARGYID = t.ID) AND C_IMPORTALT = 'T' AND C_TANEVID = @tanevID DELETE cso FROM T_CSOPORTOK_OSZTALYOK cso WHERE (EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES ocs WHERE C_IMPORTALT = 'T' AND cso.C_CSOPORTOKID = ocs.ID AND ocs.TOROLT='F' ) AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = cso.C_CSOPORTOKID)) OR (EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES ocs WHERE C_IMPORTALT = 'T' AND cso.C_OSZTALYOKID = ocs.ID AND ocs.TOROLT='F' ) AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = cso.C_OSZTALYOKID)) DELETE cs FROM T_CSOPORT cs WHERE EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES WHERE C_IMPORTALT = 'T' AND cs.ID = ID) AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = cs.ID) AND NOT EXISTS (SELECT 1 FROM T_CSOPORTOK_OSZTALYOK WHERE C_CSOPORTOKID = cs.ID) DELETE o FROM T_OSZTALY o WHERE NOT EXISTS (SELECT 1 FROM T_NAPLOELLENORZES_OSSZES WHERE o.ID = C_OSZTALYID) AND EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES WHERE C_IMPORTALT = 'T' AND o.ID = ID) AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = o.ID) AND NOT EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID = o.ID) AND NOT EXISTS (SELECT 1 FROM T_CSOPORTOK_OSZTALYOK WHERE C_OSZTALYOKID = o.ID) AND C_ALTANEVID = @tanevID DELETE ocs FROM T_OSZTALYCSOPORT ocs WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_FALIUJSAGBEJE_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID) AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANEVRENDJE_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID) AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID) AND NOT EXISTS (SELECT 1 FROM T_TANMENET_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID) AND NOT EXISTS (SELECT 1 FROM T_TANULOCSOPORT_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID) AND NOT EXISTS (SELECT 1 FROM T_TANULOERTEKELES_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID) AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID) AND NOT EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES WHERE ID = ocs.ID) AND NOT EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = ocs.ID) AND C_IMPORTALT = 'T' AND C_TANEVID = @tanevID END