122 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			6.4 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_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 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_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
 | 
						|
    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 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
 | 
						|
    )   
 | 
						|
    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 -- 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_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
 | 
						|
  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)
 | 
						|
		AND NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = cs.ID)
 | 
						|
  
 | 
						|
  DELETE o
 | 
						|
  FROM T_OSZTALY_OSSZES 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 NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = o.ID)
 | 
						|
	  AND C_ALTANEVID = @tanevId
 | 
						|
    
 | 
						|
  DELETE ocs
 | 
						|
  FROM T_OSZTALYCSOPORT_OSSZES ocs
 | 
						|
  WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_FALIUJSAGBEJE WHERE ocs.ID = C_OSZTALYCSOPORTID)
 | 
						|
    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_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 C_IMPORTALT = 'T'
 | 
						|
	  AND C_TANEVID = @tanevId
 | 
						|
END
 | 
						|
 | 
						|
GO |