﻿SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
SET NUMERIC_ROUNDABORT OFF;
GO

EXEC sp_rename N'dbo.T_KIRKONTENER.C_OMKOD', N'C_INTEZMENYAZONOSITO', 'COLUMN';

EXEC('
    ALTER TABLE [dbo].[T_KIRKONTENER]
        ALTER COLUMN [C_INTEZMENYAZONOSITO] NVARCHAR (30) NOT NULL;
');

ALTER TABLE [dbo].[T_OSZTALY]
    ADD [C_MUFAJTIPUSID]   INT NULL,
        [C_TANSZAKTIPUSID] INT NULL;

CREATE NONCLUSTERED INDEX [NCI_Osztaly_AlintezmenyId_AltanevId_MufajTipusId]
    ON [dbo].[T_OSZTALY]([C_ALINTEZMENYID] ASC, [C_ALTANEVID] ASC, [C_MUFAJTIPUSID] ASC);

CREATE NONCLUSTERED INDEX [NCI_Osztaly_AlintezmenyId_AltanevId_TanszakTipusId]
    ON [dbo].[T_OSZTALY]([C_ALINTEZMENYID] ASC, [C_ALTANEVID] ASC, [C_TANSZAKTIPUSID] ASC);

ALTER TABLE [dbo].[T_TANTARGY]
    ADD [C_MUVESZETIAGID] INT NULL;

CREATE NONCLUSTERED INDEX [NCI_Tantargy_IntezmenyId_TanevId_MuveszetiAgId]
    ON [dbo].[T_TANTARGY]([C_INTEZMENYID] ASC, [C_TANEVID] ASC, [C_MUVESZETIAGID] ASC);

ALTER TABLE [dbo].[T_TANULO]
    ADD [C_MUFAJTIPUSID]   INT NULL,
        [C_MUVESZETIAGID]  INT NULL,
        [C_TANSZAKTIPUSID] INT NULL;

CREATE NONCLUSTERED INDEX [NCI_Tanulo_AlintezmenyId_AltanevId_MufajTipusId]
    ON [dbo].[T_TANULO]([C_ALINTEZMENYID] ASC, [C_ALTANEVID] ASC, [C_MUFAJTIPUSID] ASC);

CREATE NONCLUSTERED INDEX [NCI_Tanulo_AlintezmenyId_AltanevId_MuveszetiAgId]
    ON [dbo].[T_TANULO]([C_ALINTEZMENYID] ASC, [C_ALTANEVID] ASC, [C_MUVESZETIAGID] ASC);

CREATE NONCLUSTERED INDEX [NCI_Tanulo_AlintezmenyId_AltanevId_TanszakTipusId]
    ON [dbo].[T_TANULO]([C_ALINTEZMENYID] ASC, [C_ALTANEVID] ASC, [C_TANSZAKTIPUSID] ASC);

ALTER TABLE [dbo].[T_TANULOTANUGYIADATOK]
    ADD [C_MUFAJTIPUSID]   INT NULL,
        [C_MUVESZETIAGID]  INT NULL,
        [C_TANSZAKTIPUSID] INT NULL;

CREATE NONCLUSTERED INDEX [NCI_TanuloTanugyiAdatok_IntezmenyId_TanevId_MufajTipusId]
    ON [dbo].[T_TANULOTANUGYIADATOK]([C_INTEZMENYID] ASC, [C_TANEVID] ASC, [C_MUFAJTIPUSID] ASC);

CREATE NONCLUSTERED INDEX [NCI_TanuloTanugyiAdatok_IntezmenyId_TanevId_MuveszetiAgId]
    ON [dbo].[T_TANULOTANUGYIADATOK]([C_INTEZMENYID] ASC, [C_TANEVID] ASC, [C_MUVESZETIAGID] ASC);

CREATE NONCLUSTERED INDEX [NCI_TanuloTanugyiAdatok_IntezmenyId_TanevId_TanszakTipusId]
    ON [dbo].[T_TANULOTANUGYIADATOK]([C_INTEZMENYID] ASC, [C_TANEVID] ASC, [C_TANSZAKTIPUSID] ASC);

ALTER TABLE [dbo].[T_OSZTALY] WITH NOCHECK
    ADD CONSTRAINT [FK_Osztaly_MufajTipusId_AlintezmenyId_AltanevId_REF_MufajTipus] FOREIGN KEY ([C_MUFAJTIPUSID], [C_ALINTEZMENYID], [C_ALTANEVID]) REFERENCES [dbo].[T_MUFAJTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);

ALTER TABLE [dbo].[T_OSZTALY] WITH NOCHECK
    ADD CONSTRAINT [FK_Osztaly_TanszakTipusId_AlintezmenyId_AltanevId_REF_TanszakTipus] FOREIGN KEY ([C_TANSZAKTIPUSID], [C_ALINTEZMENYID], [C_ALTANEVID]) REFERENCES [dbo].[T_TANSZAKTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);

ALTER TABLE [dbo].[T_TANTARGY] WITH NOCHECK
    ADD CONSTRAINT [FK_Tantargy_MuveszetiAgId_IntezmenyId_TanevId_REF_MuveszetiAg] FOREIGN KEY ([C_MUVESZETIAGID], [C_INTEZMENYID], [C_TANEVID]) REFERENCES [dbo].[T_MUVESZETIAG] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);

ALTER TABLE [dbo].[T_TANULO] WITH NOCHECK
    ADD CONSTRAINT [FK_Tanulo_MufajTipusId_AlintezmenyId_AltanevId_REF_MufajTipus] FOREIGN KEY ([C_MUFAJTIPUSID], [C_ALINTEZMENYID], [C_ALTANEVID]) REFERENCES [dbo].[T_MUFAJTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);

ALTER TABLE [dbo].[T_TANULO] WITH NOCHECK
    ADD CONSTRAINT [FK_Tanulo_MuveszetiAgId_AlintezmenyId_AltanevId_REF_MuveszetiAg] FOREIGN KEY ([C_MUVESZETIAGID], [C_ALINTEZMENYID], [C_ALTANEVID]) REFERENCES [dbo].[T_MUVESZETIAG] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);

ALTER TABLE [dbo].[T_TANULO] WITH NOCHECK
    ADD CONSTRAINT [FK_Tanulo_TanszakTipusId_AlintezmenyId_AltanevId_REF_TanszakTipus] FOREIGN KEY ([C_TANSZAKTIPUSID], [C_ALINTEZMENYID], [C_ALTANEVID]) REFERENCES [dbo].[T_TANSZAKTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);

ALTER TABLE [dbo].[T_TANULOTANUGYIADATOK] WITH NOCHECK
    ADD CONSTRAINT [FK_TanuloTanugyiAdatok_MufajTipusId_IntezmenyId_TanevId_REF_MufajTipus] FOREIGN KEY ([C_MUFAJTIPUSID], [C_INTEZMENYID], [C_TANEVID]) REFERENCES [dbo].[T_MUFAJTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);

ALTER TABLE [dbo].[T_TANULOTANUGYIADATOK] WITH NOCHECK
    ADD CONSTRAINT [FK_TanuloTanugyiAdatok_MuveszetiAgId_IntezmenyId_TanevId_REF_MuveszetiAg] FOREIGN KEY ([C_MUVESZETIAGID], [C_INTEZMENYID], [C_TANEVID]) REFERENCES [dbo].[T_MUVESZETIAG] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);

ALTER TABLE [dbo].[T_TANULOTANUGYIADATOK] WITH NOCHECK
    ADD CONSTRAINT [FK_TanuloTanugyiAdatok_TanszakTipusId_IntezmenyId_TanevId_REF_TanszakTipus] FOREIGN KEY ([C_TANSZAKTIPUSID], [C_INTEZMENYID], [C_TANEVID]) REFERENCES [dbo].[T_TANSZAKTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);

ALTER TABLE [dbo].[T_OSZTALY] WITH CHECK CHECK CONSTRAINT [FK_Osztaly_MufajTipusId_AlintezmenyId_AltanevId_REF_MufajTipus];

ALTER TABLE [dbo].[T_OSZTALY] WITH CHECK CHECK CONSTRAINT [FK_Osztaly_TanszakTipusId_AlintezmenyId_AltanevId_REF_TanszakTipus];

ALTER TABLE [dbo].[T_TANTARGY] WITH CHECK CHECK CONSTRAINT [FK_Tantargy_MuveszetiAgId_IntezmenyId_TanevId_REF_MuveszetiAg];

ALTER TABLE [dbo].[T_TANULO] WITH CHECK CHECK CONSTRAINT [FK_Tanulo_MufajTipusId_AlintezmenyId_AltanevId_REF_MufajTipus];

ALTER TABLE [dbo].[T_TANULO] WITH CHECK CHECK CONSTRAINT [FK_Tanulo_MuveszetiAgId_AlintezmenyId_AltanevId_REF_MuveszetiAg];

ALTER TABLE [dbo].[T_TANULO] WITH CHECK CHECK CONSTRAINT [FK_Tanulo_TanszakTipusId_AlintezmenyId_AltanevId_REF_TanszakTipus];

ALTER TABLE [dbo].[T_TANULOTANUGYIADATOK] WITH CHECK CHECK CONSTRAINT [FK_TanuloTanugyiAdatok_MufajTipusId_IntezmenyId_TanevId_REF_MufajTipus];

ALTER TABLE [dbo].[T_TANULOTANUGYIADATOK] WITH CHECK CHECK CONSTRAINT [FK_TanuloTanugyiAdatok_MuveszetiAgId_IntezmenyId_TanevId_REF_MuveszetiAg];

ALTER TABLE [dbo].[T_TANULOTANUGYIADATOK] WITH CHECK CHECK CONSTRAINT [FK_TanuloTanugyiAdatok_TanszakTipusId_IntezmenyId_TanevId_REF_TanszakTipus];

EXEC dev.uspCreateSchemaViews 'T_KIRKONTENER,T_OSZTALY,T_TANTARGY,T_TANULO,T_TANULOTANUGYIADATOK';

EXEC dev.sp_Global_GenerateAsyncAuditTriggerAll;