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

SET NUMERIC_ROUNDABORT OFF;



GO
PRINT N'Dropping unnamed constraint on [dbo].[T_TANULOCSOPORTNYELV]...';


GO
EXEC dev.uspDropDefaultConstraint 'T_TANULOCSOPORTNYELV', 'SERIAL';


GO
PRINT N'Dropping unnamed constraint on [dbo].[T_TANULOCSOPORTNYELV]...';


GO
EXEC dev.uspDropDefaultConstraint 'T_TANULOCSOPORTNYELV', 'CREATED';


GO
PRINT N'Dropping unnamed constraint on [dbo].[T_TANULOCSOPORTNYELV]...';


GO
EXEC dev.uspDropDefaultConstraint 'T_TANULOCSOPORTNYELV', 'TOROLT';


GO
PRINT N'Dropping unnamed constraint on [dbo].[T_TANULOCSOPORTNYELV]...';


GO
EXEC dev.uspDropDefaultConstraint 'T_TANULOCSOPORTNYELV', 'LASTCHANGED';


GO
PRINT N'Dropping [dbo].[FK_TanuloCsoportNyelv_NyelvId_IntezmenyId_TanevId_REF_Anyanyelv]...';


GO
ALTER TABLE [dbo].[T_TANULOCSOPORTNYELV] DROP CONSTRAINT [FK_TanuloCsoportNyelv_NyelvId_IntezmenyId_TanevId_REF_Anyanyelv];


GO
PRINT N'Dropping [dbo].[FK_TanuloCsoportNyelv_TanuloCsoportId_REF_TanuloCsoport]...';


GO
ALTER TABLE [dbo].[T_TANULOCSOPORTNYELV] DROP CONSTRAINT [FK_TanuloCsoportNyelv_TanuloCsoportId_REF_TanuloCsoport];


GO
PRINT N'Dropping [dbo].[FK_TanuloCsoportNyelv_IntezmenyId_REF_Intezmeny]...';


GO
ALTER TABLE [dbo].[T_TANULOCSOPORTNYELV] DROP CONSTRAINT [FK_TanuloCsoportNyelv_IntezmenyId_REF_Intezmeny];


GO
PRINT N'Dropping [dbo].[FK_TanuloCsoportNyelv_TanevId_REF_Tanev]...';


GO
ALTER TABLE [dbo].[T_TANULOCSOPORTNYELV] DROP CONSTRAINT [FK_TanuloCsoportNyelv_TanevId_REF_Tanev];


GO
PRINT N'Dropping [dbo].[T_TANULOCSOPORTNYELV_OSSZES]...';



GO
DROP VIEW [dbo].[T_TANULOCSOPORTNYELV_OSSZES];


GO
PRINT N'Dropping [dbo].[T_TANULOCSOPORTNYELV]...';


GO
DROP TABLE [dbo].[T_TANULOCSOPORTNYELV];


GO
PRINT N'Altering [dbo].[T_TANTARGY]...';


GO
ALTER TABLE [dbo].[T_TANTARGY]
    ADD [C_ISMSZGTARGY] CHAR (1) DEFAULT ('F') NOT NULL;


GO
PRINT N'Altering [dbo].[T_TANULO]...';


GO
ALTER TABLE [dbo].[T_TANULO]
    ADD [C_AGAZATIALAPVIZSGAEREDMENYESZ] INT            NULL,
        [C_OKIRATSZAM]                   NVARCHAR (256) NULL,
        [C_TARTOZKODASJOGCIMTIPUSID]     INT            NULL;


GO
PRINT N'Creating [dbo].[T_TANULO].[NCI_Tanulo_AlintezmenyId_AltanevId_TartozkodasJogcimTipusId]...';


GO
CREATE NONCLUSTERED INDEX [NCI_Tanulo_AlintezmenyId_AltanevId_TartozkodasJogcimTipusId]
    ON [dbo].[T_TANULO]([C_ALINTEZMENYID] ASC, [C_ALTANEVID] ASC, [C_TARTOZKODASJOGCIMTIPUSID] ASC);


GO
PRINT N'Altering [dbo].[T_TANULOCSOPORT]...';


GO
ALTER TABLE [dbo].[T_TANULOCSOPORT] DROP COLUMN [C_VEGZARADEK], COLUMN [C_ZARADEK];


GO
PRINT N'Altering [dbo].[T_TANULOTANUGYIADATOK]...';


GO
ALTER TABLE [dbo].[T_TANULOTANUGYIADATOK]
    ADD [C_AGAZATIALAPVIZSGAEREDMENYESZ] INT NULL;


GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS]...';


GO
CREATE TABLE [dbo].[T_TARTOZKODASJOGCIMTIPUS] (
    [ID]                   INT      NOT NULL,
    [C_ALINTEZMENYID]      INT      NOT NULL,
    [C_ALTANEVID]          INT      NOT NULL,
    [TOROLT]               CHAR (1) NOT NULL,
    [SERIAL]               INT      NOT NULL,
    [LASTCHANGED]          DATETIME NOT NULL,
    [CREATED]              DATETIME NOT NULL,
    [MODIFIER]             INT      NULL,
    [CREATOR]              INT      NULL,
    [ELOZOTANEVIREKORDID]  INT      NULL,
    [ELOZOTANEVIREKORDIDA] INT      NULL,
    CONSTRAINT [PK_TartozkodasJogcimTipus] PRIMARY KEY CLUSTERED ([ID] ASC, [C_ALINTEZMENYID] ASC, [C_ALTANEVID] ASC)
);


GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS].[NCI_TartozkodasJogcimTipus_AlIntezmenyId]...';


GO
CREATE NONCLUSTERED INDEX [NCI_TartozkodasJogcimTipus_AlIntezmenyId]
    ON [dbo].[T_TARTOZKODASJOGCIMTIPUS]([C_ALINTEZMENYID] ASC);


GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS].[NCI_TartozkodasJogcimTipus_AlTanevId]...';


GO
CREATE NONCLUSTERED INDEX [NCI_TartozkodasJogcimTipus_AlTanevId]
    ON [dbo].[T_TARTOZKODASJOGCIMTIPUS]([C_ALTANEVID] ASC);


GO
PRINT N'Creating unnamed constraint on [dbo].[T_TARTOZKODASJOGCIMTIPUS]...';


GO
ALTER TABLE [dbo].[T_TARTOZKODASJOGCIMTIPUS]
    ADD DEFAULT ((0)) FOR [SERIAL];


GO
PRINT N'Creating unnamed constraint on [dbo].[T_TARTOZKODASJOGCIMTIPUS]...';


GO
ALTER TABLE [dbo].[T_TARTOZKODASJOGCIMTIPUS]
    ADD DEFAULT (getdate()) FOR [CREATED];


GO
PRINT N'Creating unnamed constraint on [dbo].[T_TARTOZKODASJOGCIMTIPUS]...';


GO
ALTER TABLE [dbo].[T_TARTOZKODASJOGCIMTIPUS]
    ADD DEFAULT (getdate()) FOR [LASTCHANGED];


GO
PRINT N'Creating unnamed constraint on [dbo].[T_TARTOZKODASJOGCIMTIPUS]...';


GO
ALTER TABLE [dbo].[T_TARTOZKODASJOGCIMTIPUS]
    ADD DEFAULT ('F') FOR [TOROLT];


GO
PRINT N'Creating [dbo].[FK_TartozkodasJogcimTipus_Id_AlintezmenyId_AltanevId_REF_DictionaryItemBase]...';


GO
ALTER TABLE [dbo].[T_TARTOZKODASJOGCIMTIPUS] WITH NOCHECK
    ADD CONSTRAINT [FK_TartozkodasJogcimTipus_Id_AlintezmenyId_AltanevId_REF_DictionaryItemBase] FOREIGN KEY ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]) REFERENCES [dbo].[T_DICTIONARYITEMBASE] ([ID], [C_INTEZMENYID], [C_TANEVID]);


GO
PRINT N'Creating [dbo].[FK_TartozkodasJogcimTipus_AlIntezmenyId_REF_Intezmeny]...';


GO
ALTER TABLE [dbo].[T_TARTOZKODASJOGCIMTIPUS] WITH NOCHECK
    ADD CONSTRAINT [FK_TartozkodasJogcimTipus_AlIntezmenyId_REF_Intezmeny] FOREIGN KEY ([C_ALINTEZMENYID]) REFERENCES [dbo].[T_INTEZMENY] ([ID]);


GO
PRINT N'Creating [dbo].[FK_TartozkodasJogcimTipus_AlTanevId_REF_Tanev]...';


GO
ALTER TABLE [dbo].[T_TARTOZKODASJOGCIMTIPUS] WITH NOCHECK
    ADD CONSTRAINT [FK_TartozkodasJogcimTipus_AlTanevId_REF_Tanev] FOREIGN KEY ([C_ALTANEVID]) REFERENCES [dbo].[T_TANEV] ([ID]);


GO
PRINT N'Creating [dbo].[FK_Tanulo_TartozkodasJogcimTipusId_AlintezmenyId_AltanevId_REF_TartozkodasJogcimTipus]...';


GO
ALTER TABLE [dbo].[T_TANULO] WITH NOCHECK
    ADD CONSTRAINT [FK_Tanulo_TartozkodasJogcimTipusId_AlintezmenyId_AltanevId_REF_TartozkodasJogcimTipus] FOREIGN KEY ([C_TARTOZKODASJOGCIMTIPUSID], [C_ALINTEZMENYID], [C_ALTANEVID]) REFERENCES [dbo].[T_TARTOZKODASJOGCIMTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);



GO
PRINT N'Altering [dbo].[V_TANULOCSOPORT]...';


GO

ALTER VIEW V_TANULOCSOPORT AS
SELECT 
   tcs.ID
  ,tcs.TOROLT 
  ,tcs.C_TANULOID
  ,dk.C_NYOMTATASINEV AS C_TANULONEV
  ,tcs.C_OSZTALYCSOPORTID
  ,ocs.C_NEV AS C_OSZTALYCSOPORTNEV
  ,IIF(tta.ID IS NULL, 'CSOP', 'OSZT') AS C_OSZTALYCSOPORTTIPUS
  ,ocs.C_FELADATKATEGORIAID
  ,fk.C_NAME AS C_FELADATKATEGORIANEV
  ,tcs.C_BELEPESDATUM
  ,tcs.C_KILEPESDATUM
  ,tcs.C_BEJEGYZESIDOPONTJA
  ,tcs.C_KILEPESROGZITESDATUM
  ,tcs.C_INTEZMENYID
  ,tcs.C_TANEVID
  ,tcs.LASTCHANGED
  ,tcs.CREATED
  ,tcs.MODIFIER
  ,tcs.CREATOR
FROM T_TANULOCSOPORT tcs WITH(NOLOCK)
  LEFT JOIN T_OSZTALYCSOPORT ocs WITH(NOLOCK) ON ocs.ID = tcs.C_OSZTALYCSOPORTID
  LEFT JOIN T_FELHASZNALO dk WITH(NOLOCK) ON dk.ID = tcs.C_TANULOID
  LEFT JOIN T_TANULOTANUGYIADATOK tta WITH(NOLOCK) ON tta.C_TANULOCSOPORTID = tcs.ID
  LEFT JOIN T_DICTIONARYITEMBASE fk WITH(NOLOCK) ON fk.ID = ocs.C_FELADATKATEGORIAID AND fk.C_TANEVID = ocs.C_TANEVID



GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS].[ID].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord egyedi azonosítója, generált IDENTITY(1, 1) (kivéve altáblák esetén, ahol a főtábla ID-ját kapja)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TARTOZKODASJOGCIMTIPUS', @level2type = N'COLUMN', @level2name = N'ID';


GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS].[C_ALINTEZMENYID].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'Az intézmény ID-ja, amihez a rekord tartozik (altábla esetén)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TARTOZKODASJOGCIMTIPUS', @level2type = N'COLUMN', @level2name = N'C_ALINTEZMENYID';


GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS].[C_ALTANEVID].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A tanév ID-ja, amihez a rekord tartozik (altábla esetén)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TARTOZKODASJOGCIMTIPUS', @level2type = N'COLUMN', @level2name = N'C_ALTANEVID';


GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS].[TOROLT].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord logikai töröltségét jelző flag', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TARTOZKODASJOGCIMTIPUS', @level2type = N'COLUMN', @level2name = N'TOROLT';


GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS].[SERIAL].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'Minden C# kódból történő módosítás esetén eggyel nő az értéke. Hogy párhuzamos módosítás esetnán ne íródjanak felül az adatok', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TARTOZKODASJOGCIMTIPUS', @level2type = N'COLUMN', @level2name = N'SERIAL';


GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS].[LASTCHANGED].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'	A rekord utolsó módosításának időpontja', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TARTOZKODASJOGCIMTIPUS', @level2type = N'COLUMN', @level2name = N'LASTCHANGED';


GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS].[CREATED].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord létrehozásának időpontja ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TARTOZKODASJOGCIMTIPUS', @level2type = N'COLUMN', @level2name = N'CREATED';


GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS].[MODIFIER].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekordot utoljára módosító felhasználó ID-ja', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TARTOZKODASJOGCIMTIPUS', @level2type = N'COLUMN', @level2name = N'MODIFIER';


GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS].[CREATOR].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekordot létrehozó felhasználó ID-ja', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TARTOZKODASJOGCIMTIPUS', @level2type = N'COLUMN', @level2name = N'CREATOR';


GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS].[ELOZOTANEVIREKORDID].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord előző tanévben lévő ID-ja', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TARTOZKODASJOGCIMTIPUS', @level2type = N'COLUMN', @level2name = N'ELOZOTANEVIREKORDID';


GO
PRINT N'Creating [dbo].[T_TARTOZKODASJOGCIMTIPUS].[ELOZOTANEVIREKORDIDA].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord előző tanévben lévő ID-ja (altábla esetén) ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TARTOZKODASJOGCIMTIPUS', @level2type = N'COLUMN', @level2name = N'ELOZOTANEVIREKORDIDA';



GO
PRINT N'Checking existing data against newly created constraints';



GO
ALTER TABLE [dbo].[T_TARTOZKODASJOGCIMTIPUS] WITH CHECK CHECK CONSTRAINT [FK_TartozkodasJogcimTipus_Id_AlintezmenyId_AltanevId_REF_DictionaryItemBase];

ALTER TABLE [dbo].[T_TARTOZKODASJOGCIMTIPUS] WITH CHECK CHECK CONSTRAINT [FK_TartozkodasJogcimTipus_AlIntezmenyId_REF_Intezmeny];

ALTER TABLE [dbo].[T_TARTOZKODASJOGCIMTIPUS] WITH CHECK CHECK CONSTRAINT [FK_TartozkodasJogcimTipus_AlTanevId_REF_Tanev];

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


GO
PRINT N'Update complete.';


GO
EXEC dev.uspCreateSchemaViews 'T_TANULOCSOPORT, T_TANULO, T_TARTOZKODASJOGCIMTIPUS, T_TANTARGY, T_TANULOTANUGYIADATOK'
GO

EXEC dev.sp_Global_GenerateAsyncAuditTriggerAll
GO

ALTER QUEUE auditLog.[AuditQueue]
WITH ACTIVATION (
  STATUS = ON,
  PROCEDURE_NAME = auditLog.usp_AuditProcessing,
  MAX_QUEUE_READERS = 10,
  EXECUTE AS 'Kreta_tech_user'
);
GO