132 lines
7.3 KiB
Transact-SQL
132 lines
7.3 KiB
Transact-SQL
IF OBJECT_ID('[dbo].[sp_DeleteAllTTF]', 'P') IS NOT NULL BEGIN
|
|
DROP PROCEDURE [dbo].[sp_DeleteAllTTF]
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[sp_DeleteAllTTF]
|
|
@feladatellatasiHelyId INT = NULL
|
|
,@tanevId INT
|
|
AS
|
|
BEGIN
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
IF @feladatellatasiHelyId IS NULL BEGIN
|
|
DELETE FROM T_FOGLALKOZAS_OSSZES
|
|
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 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 TODO:ez a rész sehonnan nincs hívvva, töröl
|
|
DELETE FROM T_FOGLALKOZAS_OSSZES
|
|
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 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 = @feladatellatasiHelyId and C_TANEVID = @tanevId
|
|
)
|
|
AND f.C_TANEVID = @tanevId
|
|
)
|
|
END
|
|
|
|
/*
|
|
* 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_OSSZES 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 NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_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_OSSZES cs
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = cs.ID
|
|
WHERE 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)
|
|
AND NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = cs.ID)
|
|
AND NOT EXISTS (SELECT 1 FROM T_HITTANADATSZOLGALTATAS_OSSZES WHERE C_OSZTALYCSOPORTID = cs.ID)
|
|
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANULOESEMENY WHERE C_OSZTALYCSOPORTID = cs.ID)
|
|
--T_OSZTALYCSOPORT függőségeinek vizsgálata
|
|
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANEVRENDJE 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_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
|
|
AND NOT EXISTS (SELECT 1 FROM T_HITTANADATSZOLGALTATAS_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
|
|
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANULOESEMENY WHERE C_OSZTALYCSOPORTID = ocs.ID)
|
|
AND C_IMPORTALT = 'T'
|
|
AND C_TANEVID = @tanevId
|
|
|
|
DELETE o
|
|
FROM T_OSZTALY_OSSZES o
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID
|
|
WHERE NOT EXISTS (SELECT 1 FROM T_NAPLOELLENORZES_OSSZES WHERE o.ID = C_OSZTALYID)
|
|
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 NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = o.ID)
|
|
AND NOT EXISTS (SELECT 1 FROM T_HITTANADATSZOLGALTATAS_OSSZES WHERE C_OSZTALYCSOPORTID = o.ID)
|
|
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANULOESEMENY WHERE C_OSZTALYCSOPORTID = o.ID)
|
|
AND C_ALTANEVID = @tanevId
|
|
--T_OSZTALYCSOPORT függőségeinek vizsgálata
|
|
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANEVRENDJE 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_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
|
|
AND NOT EXISTS (SELECT 1 FROM T_HITTANADATSZOLGALTATAS_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
|
|
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANULOESEMENY WHERE C_OSZTALYCSOPORTID = ocs.ID)
|
|
AND C_IMPORTALT = 'T'
|
|
AND C_TANEVID = @tanevId
|
|
|
|
DELETE ocs
|
|
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
|
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANEVRENDJE 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 NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
|
|
AND NOT EXISTS (SELECT 1 FROM T_HITTANADATSZOLGALTATAS_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
|
|
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANULOESEMENY WHERE C_OSZTALYCSOPORTID = ocs.ID)
|
|
AND C_IMPORTALT = 'T'
|
|
AND C_TANEVID = @tanevId
|
|
END
|
|
|
|
|
|
GO
|
|
|