﻿--Migration
CREATE TABLE  [dbo].T_TANULOTANTARGYATLAG (
    ID                                int                              NOT NULL IDENTITY(1,1),
    C_ATLAG                           AS (CAST(IIF(C_OSZTALYZATSZAMA = 0, 0.0, 1.0 * C_OSZTALYZATOSSZEGE / C_OSZTALYZATSZAMA) AS NUMERIC(10,2))),
    C_OSZTALYZATOSSZEGE               int                              NOT NULL,
    C_OSZTALYZATSZAMA                 int                              NOT NULL,
    C_SULYOZOTTATLAG                  AS (CAST(IIF(C_OSZTALYZATSZAMA = 0, 0.0, 1.0 * C_SULYOZOTTOSZTALYZATOSSZEGE / C_SULYOZOTTOSZTALYZATSZAMA) AS NUMERIC(10,2))) PERSISTED,
    C_SULYOZOTTOSZTALYZATOSSZEGE      int                              NOT NULL,
    C_SULYOZOTTOSZTALYZATSZAMA        int                              NOT NULL,
    C_TANTARGYID                      int                              NOT NULL,
    C_TANULOID                        int                              NOT NULL,
    C_INTEZMENYID                     int                              NOT NULL,
    C_TANEVID                         int                              NOT NULL,
    TOROLT                            char(1)                          NOT NULL DEFAULT 'F',
    SERIAL                            int                              DEFAULT 0 NOT NULL,
    LASTCHANGED                       datetime                         DEFAULT GETDATE() NOT NULL,
    CREATED                           datetime                         DEFAULT GETDATE() NOT NULL,
    MODIFIER                          int                              NULL,
    CREATOR                           int                              NULL,
    CONSTRAINT PK_TanuloTantargyAtlag PRIMARY KEY (ID)  
)
GO
-- Generált indexek
CREATE INDEX NCI_TanuloTantargyAtlag_TantargyId ON T_TANULOTANTARGYATLAG (C_TANTARGYID)
GO
CREATE INDEX NCI_TanuloTantargyAtlag_TanuloId ON T_TANULOTANTARGYATLAG (C_TANULOID)
GO
CREATE INDEX NCI_TanuloTantargyAtlag_IntezmenyId ON T_TANULOTANTARGYATLAG (C_INTEZMENYID)
GO
CREATE INDEX NCI_TanuloTantargyAtlag_TanevId ON T_TANULOTANTARGYATLAG (C_TANEVID)
GO

-- Generált FK-k
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_IntezmenyId_REF_Intezmeny 
  FOREIGN KEY (C_INTEZMENYID) 
  REFERENCES [DBO].T_INTEZMENY (ID)
GO



ALTER TABLE [DBO].T_TANULOTANTARGYATLAG 
  ADD CONSTRAINT FK_TanuloTantargyAtlag_TanevId_REF_Tanev 
  FOREIGN KEY (C_TANEVID) 
  REFERENCES [DBO].T_TANEV (ID)
GO

-- CLUSTERED index megváltoztatása

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 PK_TanuloTantargyAtlag;   
GO

IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'CU_TanuloTantargyAtlag_TanuloId_TantargyId') BEGIN
  CREATE UNIQUE CLUSTERED  INDEX CU_TanuloTantargyAtlag_TanuloId_TantargyId
    ON T_TANULOTANTARGYATLAG (C_TANULOID, C_TANTARGYID)
  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

-- View-k létrehozása
EXEC dev.uspCreateSchemaViews 'T_TANULOTANTARGYATLAG' 
GO

-- audit trigger nem kell a táblához
