﻿--Migration

GO
PRINT N'Dropping unnamed constraints...';

  DECLARE @sql nvarchar(max) = ''

  SELECT @sql += CONCAT('ALTER TABLE ' , OBJECT_NAME(c.object_id) , ' DROP CONSTRAINT ' , dc.name + ';' + char(13) + char(10))
  FROM sys.default_constraints dc
  INNER JOIN sys.columns c ON c.column_id = dc.parent_column_id AND dc.parent_object_id = c.object_id
  WHERE c.name = 'C_ISERTESITESELKULDVE' AND OBJECT_NAME(c.object_id) IN ('T_HAZIFELADATOK', 'T_SZAMONKERESELOREJELZES', 'T_TANULOHAZIFELADAT')

  EXEC sp_executesql @sql
GO
PRINT N'Dropping [dbo].[FK_TanuloEsemeny_FeljegyzoId_REF_Alkalmazott]...';


GO
GO
ALTER TABLE [dbo].[T_TANULOESEMENY] DROP CONSTRAINT IF EXISTS [FK_TanuloEsemeny_FeljegyzoId_REF_Alkalmazott];
GO
ALTER TABLE [dbo].[T_TANULOESEMENY] DROP CONSTRAINT IF EXISTS [FK_TanuloEsemeny_FeljegyzoId_REF_Felhasznalo];


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


GO
ALTER TABLE [dbo].[T_HAZIFELADATOK]
    ADD [C_ORARENDIORAGROUPID] INT NULL;


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


GO
ALTER TABLE [dbo].[T_OSZTALY]
    ADD [C_ARANYJANOSPROGRAMTIPUSID] INT NULL;


GO
PRINT N'Creating [dbo].[T_OSZTALY].[NCI_Osztaly_AlintezmenyId_AltanevId_AranyJanosProgramTipusId]...';


GO
CREATE NONCLUSTERED INDEX [NCI_Osztaly_AlintezmenyId_AltanevId_AranyJanosProgramTipusId]
    ON [dbo].[T_OSZTALY]([C_ALINTEZMENYID] ASC, [C_ALTANEVID] ASC, [C_ARANYJANOSPROGRAMTIPUSID] ASC);


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


GO
CREATE TABLE [dbo].[T_TANULOHAZIFELADATSTATUSZ] (
    [ID]                  INT      IDENTITY (1, 1) NOT NULL,
    [C_ISMEGOLDVA]        CHAR (1) NOT NULL,
    [C_MEGOLDASIDEJE]     DATETIME NULL,
    [C_TANULOID]          INT      NOT NULL,
    [C_HAZIFELADATOKID]   INT      NOT NULL,
    [C_INTEZMENYID]       INT      NOT NULL,
    [C_TANEVID]           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,
    [NNID]                INT      NULL,
    CONSTRAINT [PK_TanuloHaziFeladatStatusz] PRIMARY KEY CLUSTERED ([ID] ASC)
);


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[NCI_TanuloHaziFeladatStatusz_TanuloId]...';


GO
CREATE NONCLUSTERED INDEX [NCI_TanuloHaziFeladatStatusz_TanuloId]
    ON [dbo].[T_TANULOHAZIFELADATSTATUSZ]([C_TANULOID] ASC);


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[NCI_TanuloHaziFeladatStatusz_HaziFeladatokId]...';


GO
CREATE NONCLUSTERED INDEX [NCI_TanuloHaziFeladatStatusz_HaziFeladatokId]
    ON [dbo].[T_TANULOHAZIFELADATSTATUSZ]([C_HAZIFELADATOKID] ASC);


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[NCI_TanuloHaziFeladatStatusz_IntezmenyId]...';


GO
CREATE NONCLUSTERED INDEX [NCI_TanuloHaziFeladatStatusz_IntezmenyId]
    ON [dbo].[T_TANULOHAZIFELADATSTATUSZ]([C_INTEZMENYID] ASC);


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[NCI_TanuloHaziFeladatStatusz_TanevId]...';


GO
CREATE NONCLUSTERED INDEX [NCI_TanuloHaziFeladatStatusz_TanevId]
    ON [dbo].[T_TANULOHAZIFELADATSTATUSZ]([C_TANEVID] ASC);


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


GO
ALTER TABLE [dbo].[T_SZAMONKERESELOREJELZES]
    ADD DEFAULT ('F') FOR [C_ISERTESITESELKULDVE];


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


GO
ALTER TABLE [dbo].[T_TANULOHAZIFELADAT]
    ADD DEFAULT ('F') FOR [C_ISERTESITESELKULDVE];


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


ALTER TABLE [dbo].[T_HAZIFELADATOK]
    ADD DEFAULT ('F') FOR [C_ISERTESITESELKULDVE];


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


GO
ALTER TABLE [dbo].[T_TANULOHAZIFELADATSTATUSZ]
    ADD DEFAULT ('F') FOR [C_ISMEGOLDVA];


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


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


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


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


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


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


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


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


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


GO
ALTER TABLE [dbo].[T_TANULOHAZIFELADATSTATUSZ] WITH NOCHECK
    ADD CONSTRAINT [FK_TanuloHaziFeladatStatusz_TanuloId_REF_Tanulo] FOREIGN KEY ([C_TANULOID]) REFERENCES [dbo].[T_TANULO] ([ID]);


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


GO
ALTER TABLE [dbo].[T_TANULOHAZIFELADATSTATUSZ] WITH NOCHECK
    ADD CONSTRAINT [FK_TanuloHaziFeladatStatusz_HaziFeladatokId_REF_HaziFeladatok] FOREIGN KEY ([C_HAZIFELADATOKID]) REFERENCES [dbo].[T_HAZIFELADATOK] ([ID]);


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


GO
ALTER TABLE [dbo].[T_TANULOHAZIFELADATSTATUSZ] WITH NOCHECK
    ADD CONSTRAINT [FK_TanuloHaziFeladatStatusz_IntezmenyId_REF_Intezmeny] FOREIGN KEY ([C_INTEZMENYID]) REFERENCES [dbo].[T_INTEZMENY] ([ID]);


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


GO
ALTER TABLE [dbo].[T_TANULOHAZIFELADATSTATUSZ] WITH NOCHECK
    ADD CONSTRAINT [FK_TanuloHaziFeladatStatusz_TanevId_REF_Tanev] FOREIGN KEY ([C_TANEVID]) REFERENCES [dbo].[T_TANEV] ([ID]);


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


GO
ALTER TABLE [dbo].[T_OSZTALY] WITH NOCHECK
    ADD CONSTRAINT [FK_Osztaly_AranyJanosProgramTipusId_AlintezmenyId_AltanevId_REF_AranyJanosProgramTipus] FOREIGN KEY ([C_ARANYJANOSPROGRAMTIPUSID], [C_ALINTEZMENYID], [C_ALTANEVID]) REFERENCES [dbo].[T_ARANYJANOSPROGRAMTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);


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


GO
ALTER TABLE [dbo].[T_TANULOESEMENY] WITH NOCHECK
    ADD CONSTRAINT [FK_TanuloEsemeny_FeljegyzoId_REF_Felhasznalo] FOREIGN KEY ([C_FELJEGYZOID]) REFERENCES [dbo].[T_FELHASZNALO] ([ID]);


GO
PRINT N'Refreshing [dbo].[T_HAZIFELADATOK_OSSZES]...';


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[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_TANULOHAZIFELADATSTATUSZ', @level2type = N'COLUMN', @level2name = N'ID';


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[C_INTEZMENYID].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'Az intézmény ID-ja, amihez a rekord tartozik', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANULOHAZIFELADATSTATUSZ', @level2type = N'COLUMN', @level2name = N'C_INTEZMENYID';


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[C_TANEVID].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A tanév ID-ja, amihez a rekord tartozik', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANULOHAZIFELADATSTATUSZ', @level2type = N'COLUMN', @level2name = N'C_TANEVID';


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[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_TANULOHAZIFELADATSTATUSZ', @level2type = N'COLUMN', @level2name = N'TOROLT';


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[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_TANULOHAZIFELADATSTATUSZ', @level2type = N'COLUMN', @level2name = N'SERIAL';


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[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_TANULOHAZIFELADATSTATUSZ', @level2type = N'COLUMN', @level2name = N'LASTCHANGED';


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[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_TANULOHAZIFELADATSTATUSZ', @level2type = N'COLUMN', @level2name = N'CREATED';


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[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_TANULOHAZIFELADATSTATUSZ', @level2type = N'COLUMN', @level2name = N'MODIFIER';


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[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_TANULOHAZIFELADATSTATUSZ', @level2type = N'COLUMN', @level2name = N'CREATOR';


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[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_TANULOHAZIFELADATSTATUSZ', @level2type = N'COLUMN', @level2name = N'ELOZOTANEVIREKORDID';


GO
PRINT N'Creating [dbo].[T_TANULOHAZIFELADATSTATUSZ].[NNID].[MS_Description]...';


GO
EXECUTE dev.uspAddOrUpdateExtendedProperty @name = N'MS_Description', @value = N'A rekord régi, Neptun Naplóban lévő ID-ja. (migrációval került be)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'T_TANULOHAZIFELADATSTATUSZ', @level2type = N'COLUMN', @level2name = N'NNID';



GO
ALTER TABLE [dbo].[T_TANULOHAZIFELADATSTATUSZ] WITH CHECK CHECK CONSTRAINT [FK_TanuloHaziFeladatStatusz_TanuloId_REF_Tanulo];

ALTER TABLE [dbo].[T_TANULOHAZIFELADATSTATUSZ] WITH CHECK CHECK CONSTRAINT [FK_TanuloHaziFeladatStatusz_HaziFeladatokId_REF_HaziFeladatok];

ALTER TABLE [dbo].[T_TANULOHAZIFELADATSTATUSZ] WITH CHECK CHECK CONSTRAINT [FK_TanuloHaziFeladatStatusz_IntezmenyId_REF_Intezmeny];

ALTER TABLE [dbo].[T_TANULOHAZIFELADATSTATUSZ] WITH CHECK CHECK CONSTRAINT [FK_TanuloHaziFeladatStatusz_TanevId_REF_Tanev];

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

ALTER TABLE [dbo].[T_TANULOESEMENY] WITH CHECK CHECK CONSTRAINT [FK_TanuloEsemeny_FeljegyzoId_REF_Felhasznalo];


GO
PRINT N'Update complete.';


GO


EXEC dev.uspCreateSchemaViews 'T_TANULOHAZIFELADAT, T_SZAMONKERESELOREJELZES, T_HAZIFELADATOK, T_TANULOHAZIFELADATSTATUSZ, T_OSZTALY'
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