﻿-- ==================================================================================================================================
-- T_TANULOTANTARGYATLAG CLUSTERED INDEX
-- ==================================================================================================================================
ALTER TABLE T_TANULOTANTARGYATLAG
DROP CONSTRAINT IF EXISTS FK_TanuloTantargyAtlag_TanuloId_REF_Tanulo;
GO
​
ALTER TABLE T_TANULOTANTARGYATLAG
DROP CONSTRAINT IF EXISTS FK_TanuloTantargyAtlag_TantargyId_REF_Tantargy;
GO
​
ALTER TABLE T_TANULOTANTARGYATLAG
DROP CONSTRAINT IF EXISTS FK_TanuloTantargyAtlag_OktatasNevelesiFeladatId_IntezmenyId_TanevId_REF_OktatasiNevelesiFeladat;
GO
​
ALTER TABLE T_TANULOTANTARGYATLAG
DROP CONSTRAINT IF EXISTS PK_TanuloTantargyAtlag;
GO
​
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'CU_TanuloTantargyAtlag_TanuloId_TantargyId_OktatasNevelesiFeladatId') BEGIN
  CREATE UNIQUE CLUSTERED INDEX CU_TanuloTantargyAtlag_TanuloId_TantargyId_OktatasNevelesiFeladatId
    ON T_TANULOTANTARGYATLAG (C_TANULOID, C_TANTARGYID, C_OKTATASNEVELESIFELADATID)
  WITH (FILLFACTOR = 80)
END
GO
​
IF OBJECT_ID('PK_TanuloTantargyAtlag') IS NULL BEGIN
  ALTER TABLE T_TANULOTANTARGYATLAG
  ADD CONSTRAINT PK_TanuloTantargyAtlag PRIMARY KEY (ID);
END
GO
​
DROP INDEX IF EXISTS NCI_TanuloTantargyAtlag_TanuloId ON T_TANULOTANTARGYATLAG
GO
​
ALTER TABLE [DBO].T_TANULOTANTARGYATLAG
  ADD CONSTRAINT FK_TanuloTantargyAtlag_TantargyId_REF_Tantargy
  FOREIGN KEY (C_TANTARGYID)
  REFERENCES [DBO].T_TANTARGY (ID)
GO
​
ALTER TABLE [DBO].T_TANULOTANTARGYATLAG
  ADD CONSTRAINT FK_TanuloTantargyAtlag_TanuloId_REF_Tanulo
  FOREIGN KEY (C_TANULOID)
  REFERENCES [DBO].T_TANULO (ID)
GO
​
ALTER TABLE [DBO].T_TANULOTANTARGYATLAG
  ADD CONSTRAINT FK_TanuloTantargyAtlag_OktatasNevelesiFeladatId_IntezmenyId_TanevId_REF_OktatasiNevelesiFeladat
  FOREIGN KEY (C_OKTATASNEVELESIFELADATID, C_INTEZMENYID, C_TANEVID)
  REFERENCES [dbo].T_OKTATASINEVELESIFELADAT (ID, C_ALINTEZMENYID, C_ALTANEVID)
GO

-- ==================================================================================================================================
-- T_NAPTARINAP CLUSTERED INDEX
-- ==================================================================================================================================
ALTER TABLE T_TANITASIORA DROP CONSTRAINT IF EXISTS FK_TanitasiOra_NaptariNapId_REF_NaptariNap;
GO

ALTER TABLE T_NAPTARINAP DROP CONSTRAINT IF EXISTS PK_Naptarinap;
GO

IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'CI_NaptariNap_NapDatuma_IntezmenyId_TanevId') BEGIN
  CREATE CLUSTERED INDEX CI_NaptariNap_NapDatuma_IntezmenyId_TanevId
    ON T_NAPTARINAP (C_NAPDATUMA, C_INTEZMENYID, C_TANEVID)
  WITH (FILLFACTOR = 80)
END
GO

IF OBJECT_ID('PK_Naptarinap') IS NULL BEGIN
  ALTER TABLE T_NAPTARINAP
  ADD CONSTRAINT PK_Naptarinap PRIMARY KEY (ID);
END
GO

IF OBJECT_ID('FK_TanitasiOra_NaptariNapId_REF_NaptariNap', 'F') IS NULL BEGIN
ALTER TABLE [DBO].T_TANITASIORA
  ADD CONSTRAINT FK_TanitasiOra_NaptariNapId_REF_NaptariNap
  FOREIGN KEY (C_NAPTARINAPID)
  REFERENCES [DBO].T_NAPTARINAP (ID)
END
GO

DROP INDEX IF EXISTS NCI_KKGyogypedVegzettseg_IntezmenyId ON T_KKGYOGYPEDVEGZETTSEG
-- ==================================================================================================================================
-- ORARENDIORA FK REMOVE
-- ==================================================================================================================================
ALTER TABLE T_ORARENDIORA DROP CONSTRAINT IF EXISTS FK_OrarendiOra_FoglalkozasId_REF_Foglalkozas
GO

-- ==================================================================================================================================
-- TANITASIORA FK REMOVE
-- ==================================================================================================================================
ALTER TABLE T_TANITASIORA DROP CONSTRAINT IF EXISTS FK_TanitasiOra_FoglalkozasId_REF_Foglalkozas
GO

-- ==================================================================================================================================
-- T_DICTIONARYITEMBASE & T_DICTIONARYTYPE CONSTRAINTS
-- ==================================================================================================================================
ALTER TABLE T_DICTIONARYITEMBASE
DROP CONSTRAINT FK_DictionaryItemBase_DictionaryTypeId_REF_DictionaryType
GO

ALTER TABLE T_DICTIONARYTYPE
DROP CONSTRAINT PK_DictionaryType
GO

ALTER TABLE T_DICTIONARYTYPE
ADD CONSTRAINT PK_DictionaryType PRIMARY KEY CLUSTERED (ID, C_INTEZMENYID, C_TANEVID)
GO

ALTER TABLE [dbo].[T_DICTIONARYITEMBASE] WITH NOCHECK
ADD CONSTRAINT [FK_DictionaryItemBase_DictionaryTypeId_IntezmenyId_TanevId_REF_DictionaryType] FOREIGN KEY ([C_DICTIONARYTYPEID], [C_INTEZMENYID], [C_TANEVID]) REFERENCES [dbo].[T_DICTIONARYTYPE] (ID, C_INTEZMENYID, C_TANEVID);
GO

ALTER TABLE [dbo].[T_OKTATASINEVELESIFELADAT]
ADD CONSTRAINT DF_OktatasiNevelesiFeladat_FeladatKategoriaId DEFAULT 7553 FOR [C_FELADATKATEGORIAID]
GO

-- ==================================================================================================================================
-- CHECK CONSTRAINTS
-- ==================================================================================================================================
ALTER TABLE [dbo].[T_FELHASZNALOBELEPES] DROP CONSTRAINT IF EXISTS [CK_C_GUID]
GO

ALTER TABLE [dbo].[T_FELHASZNALOBELEPES] DROP CONSTRAINT IF EXISTS [CK_SoNullValidation]
GO

ALTER TABLE [dbo].[T_FELHASZNALOBELEPES] DROP CONSTRAINT IF EXISTS [CK_FELHASZNALOBELEPES_PasswordValidation]
GO

IF OBJECT_ID('CK_FelhasznaloBelepes_SoNullValidation', 'C') IS NULL BEGIN
  ALTER TABLE [dbo].[T_FELHASZNALOBELEPES]
    WITH CHECK ADD CONSTRAINT CK_FelhasznaloBelepes_SoNullValidation
    CHECK (NOT([C_JELSZO] IS NOT NULL AND [C_SO] IS NULL AND [C_NEPTUNNAPLOJELSZO] IS NULL))
END
GO

IF OBJECT_ID('CK_FelhasznaloBelepes_PasswordValidation', 'C') IS NULL BEGIN
  ALTER TABLE [dbo].[T_FELHASZNALOBELEPES]
    WITH CHECK ADD CONSTRAINT CK_FelhasznaloBelepes_PasswordValidation
    CHECK (NOT(
        C_JELSZO IS NOT NULL AND
        LEN(C_JELSZO)!=28 AND
        C_JELSZO NOT LIKE '%='
      ))
END
GO

IF OBJECT_ID('CK_Telefon_Alapertelemezett_Gondviselo', 'C') IS NULL BEGIN
  ALTER TABLE T_TELEFON
  ADD CONSTRAINT CK_Telefon_Alapertelemezett_Gondviselo
  CHECK (TOROLT = 'T' OR C_GONDVISELOID IS NULL OR C_ALAPERTELMEZETT = 'T')
END
GO

IF OBJECT_ID('CK_Email_Alapertelemezett_Gondviselo', 'C') IS NULL BEGIN
  ALTER TABLE T_EMAIL
  ADD CONSTRAINT CK_Email_Alapertelemezett_Gondviselo
  CHECK (TOROLT = 'T' OR C_GONDVISELOID IS NULL OR C_ALAPERTELMEZETT = 'T')
END
GO

IF OBJECT_ID('CK_Telefon_Alapertelemezett_IsPublic', 'C') IS NULL BEGIN
  ALTER TABLE T_TELEFON
  ADD CONSTRAINT CK_Telefon_Alapertelemezett_IsPublic
  CHECK (TOROLT = 'T' OR C_ISPUBLIC = 'F' OR (C_ISPUBLIC = 'T' AND C_ALAPERTELMEZETT = 'F'))
END
GO

IF OBJECT_ID('CK_Email_Alapertelemezett_IsPublic', 'C') IS NULL BEGIN
  ALTER TABLE T_EMAIL
  ADD CONSTRAINT CK_Email_Alapertelemezett_IsPublic
  CHECK (TOROLT = 'T' OR C_ISPUBLIC = 'F' OR (C_ISPUBLIC = 'T' AND C_ALAPERTELMEZETT = 'F'))
END
GO

IF OBJECT_ID('CK_ErtekelesTantargyi_Szoveg', 'C') IS NULL BEGIN
  ALTER TABLE T_ERTEKELESTANTARGYI
  ADD CONSTRAINT CK_ErtekelesTantargyi_Szoveg
  CHECK (C_SZOVEG IS NOT NULL OR (C_SZOVEGFORMAZOTT IS NULL AND C_SZOVEGROVIDNEV IS NULL))
END
GO

IF OBJECT_ID('CK_ErtekelesTantargyi_OsztalyzatTipus', 'C') IS NULL BEGIN
  ALTER TABLE T_ERTEKELESTANTARGYI
  ADD CONSTRAINT CK_ErtekelesTantargyi_OsztalyzatTipus
  CHECK (
    (C_OSZTALYZATTIPUSID IS NOT NULL AND C_SZOVEG IS NULL AND C_SZAZALEK IS NULL)
    OR (C_OSZTALYZATTIPUSID IS NULL AND C_SZOVEG IS NOT NULL AND C_SZAZALEK IS NULL)
    OR (C_OSZTALYZATTIPUSID IS NULL AND C_SZOVEG IS NULL AND C_SZAZALEK IS NOT NULL)
  )
END
GO

IF OBJECT_ID('CK_ErtekelesTantargyiNyelv_Szoveg', 'C') IS NULL BEGIN
  ALTER TABLE T_ERTEKELESTANTARGYINYELV
  ADD CONSTRAINT CK_ErtekelesTantargyiNyelv_Szoveg
  CHECK (C_SZOVEG IS NOT NULL OR (C_SZOVEGFORMAZOTT IS NULL AND C_SZOVEGROVIDNEV IS NULL))
END
GO

IF OBJECT_ID('CK_ErtekelesMagSzor_MagatartasSzoveg', 'C') IS NULL BEGIN
  ALTER TABLE T_ERTEKELESMAGSZOR
  ADD CONSTRAINT CK_ErtekelesMagSzor_MagatartasSzoveg
  CHECK (C_MAGATARTASSZOVEG IS NOT NULL OR (C_MAGATARTASSZOVEGFORMAZOTT IS NULL AND C_MAGATARTASSZOVEGROVIDNEV IS NULL))
END
GO

IF OBJECT_ID('CK_ErtekelesMagSzor_MagatartasOsztalyzatTipus', 'C') IS NULL BEGIN
  ALTER TABLE T_ERTEKELESMAGSZOR
  ADD CONSTRAINT CK_ErtekelesMagSzor_MagatartasOsztalyzatTipus
  CHECK (
    (C_MAGATARTASOSZTALYZATTIPUSID IS NOT NULL AND C_MAGATARTASSZOVEG IS NULL AND C_MAGATARTASERTEKELESTIPUSID IS NULL)
    OR (C_MAGATARTASOSZTALYZATTIPUSID IS NULL AND C_MAGATARTASSZOVEG IS NOT NULL AND C_MAGATARTASERTEKELESTIPUSID IS NULL)
    OR (C_MAGATARTASOSZTALYZATTIPUSID IS NULL AND C_MAGATARTASSZOVEG IS NULL AND C_MAGATARTASERTEKELESTIPUSID IS NOT NULL)
    OR (C_MAGATARTASOSZTALYZATTIPUSID IS NULL AND C_MAGATARTASSZOVEG IS NULL AND C_MAGATARTASERTEKELESTIPUSID IS NULL
       AND (C_SZORGALOMOSZTALYZATTIPUSID IS NOT NULL OR C_SZORGALOMSZOVEG IS NOT NULL OR C_SZORGALOMERTEKELESTIPUSID IS NOT NULL))
  )
END
GO

IF OBJECT_ID('CK_ErtekelesMagSzorNyelv_MagatartasSzoveg', 'C') IS NULL BEGIN
  ALTER TABLE T_ERTEKELESMAGSZORNYELV
  ADD CONSTRAINT CK_ErtekelesMagSzorNyelv_MagatartasSzoveg
  CHECK (C_MAGATARTASSZOVEG IS NOT NULL OR (C_MAGATARTASSZOVEGFORMAZOTT IS NULL AND C_MAGATARTASSZOVEGROVIDNEV IS NULL))
END
GO

IF OBJECT_ID('CK_ErtekelesMagSzor_SzorgalomSzoveg', 'C') IS NULL BEGIN
  ALTER TABLE T_ERTEKELESMAGSZOR
  ADD CONSTRAINT CK_ErtekelesMagSzor_SzorgalomSzoveg
  CHECK (C_SZORGALOMSZOVEG IS NOT NULL OR (C_SZORGALOMSZOVEGFORMAZOTT IS NULL AND C_SZORGALOMSZOVEGROVIDNEV IS NULL))
END
GO

IF OBJECT_ID('CK_ErtekelesMagSzor_SzorgalomOsztalyzatTipus', 'C') IS NULL BEGIN
  ALTER TABLE T_ERTEKELESMAGSZOR
  ADD CONSTRAINT CK_ErtekelesMagSzor_SzorgalomOsztalyzatTipus
  CHECK (
    (C_SZORGALOMOSZTALYZATTIPUSID IS NOT NULL AND C_SZORGALOMSZOVEG IS NULL AND C_SZORGALOMERTEKELESTIPUSID IS NULL)
    OR (C_SZORGALOMOSZTALYZATTIPUSID IS NULL AND C_SZORGALOMSZOVEG IS NOT NULL AND C_SZORGALOMERTEKELESTIPUSID IS NULL)
    OR (C_SZORGALOMOSZTALYZATTIPUSID IS NULL AND C_SZORGALOMSZOVEG IS NULL AND C_SZORGALOMERTEKELESTIPUSID IS NOT NULL)
    OR (C_SZORGALOMOSZTALYZATTIPUSID IS NULL AND C_SZORGALOMSZOVEG IS NULL AND C_SZORGALOMERTEKELESTIPUSID IS NULL
       AND (C_MAGATARTASOSZTALYZATTIPUSID IS NOT NULL OR C_MAGATARTASSZOVEG IS NOT NULL OR C_MAGATARTASERTEKELESTIPUSID IS NOT NULL))
  )
END
GO

IF OBJECT_ID('CK_ErtekelesMagSzorNyelv_SzorgalomSzoveg', 'C') IS NULL BEGIN
  ALTER TABLE T_ERTEKELESMAGSZORNYELV
  ADD CONSTRAINT CK_ErtekelesMagSzorNyelv_SzorgalomSzoveg
  CHECK (C_SZORGALOMSZOVEG IS NOT NULL OR (C_SZORGALOMSZOVEGFORMAZOTT IS NULL AND C_SZORGALOMSZOVEGROVIDNEV IS NULL))
END
GO

IF OBJECT_ID('FK_Fenntarto_LegmagasabbSzintuFenntartoId_REF_LegmagasabbSzintuFennntartoId', 'F') IS NULL BEGIN
  ALTER TABLE [DBO].T_FENNTARTO 
    ADD CONSTRAINT FK_Fenntarto_LegmagasabbSzintuFenntartoId_REF_LegmagasabbSzintuFenntartoId
    FOREIGN KEY (C_LEGMAGASABBSZINTUFENNTARTOID) 
    REFERENCES [DBO].T_LEGMAGASABBSZINTUFENNTARTO (ID)  
END
GO
