kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/sp_DeleteAllTTF.sql
2024-03-13 00:33:46 +01:00

112 lines
6.1 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[sp_DeleteAllTTF]
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 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 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_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 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_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_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