﻿PRINT N'Creating Table [dbo].[T_SZAKMUNKASZERZODES]...';


GO
DROP TABLE IF EXISTS [dbo].[T_SZAKMUNKASZERZODES]
CREATE TABLE [dbo].[T_SZAKMUNKASZERZODES] (
    [ID]                      INT      IDENTITY (1, 1) NOT NULL,
    [C_KEZDETE]               DATETIME NOT NULL,
    [C_VEGE]                  DATETIME NOT NULL,
    [C_SZERVEZETID]           INT      NULL,
    [C_TANULOTANUGYIADATOKID] INT      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,
    CONSTRAINT [PK_SzakmunkaSzerzodes] PRIMARY KEY CLUSTERED ([ID] ASC)
);

EXEC dev.uspDropDefaultConstraint @pTableName = 'T_SZERVEZET', @pColumnName = 'C_INTEZMENYID'

GO
PRINT N'Creating Index [dbo].[T_SZAKMUNKASZERZODES].[NCI_SzakmunkaSzerzodes_SzervezetId]...';


GO
CREATE NONCLUSTERED INDEX [NCI_SzakmunkaSzerzodes_SzervezetId]
    ON [dbo].[T_SZAKMUNKASZERZODES]([C_SZERVEZETID] ASC);


GO
PRINT N'Creating Index [dbo].[T_SZAKMUNKASZERZODES].[NCI_SzakmunkaSzerzodes_TanuloTanugyiAdatokId]...';


GO
CREATE NONCLUSTERED INDEX [NCI_SzakmunkaSzerzodes_TanuloTanugyiAdatokId]
    ON [dbo].[T_SZAKMUNKASZERZODES]([C_TANULOTANUGYIADATOKID] ASC);


GO
PRINT N'Creating Index [dbo].[T_SZAKMUNKASZERZODES].[NCI_SzakmunkaSzerzodes_IntezmenyId]...';


GO
CREATE NONCLUSTERED INDEX [NCI_SzakmunkaSzerzodes_IntezmenyId]
    ON [dbo].[T_SZAKMUNKASZERZODES]([C_INTEZMENYID] ASC);


GO
PRINT N'Creating Index [dbo].[T_SZAKMUNKASZERZODES].[NCI_SzakmunkaSzerzodes_TanevId]...';


GO
CREATE NONCLUSTERED INDEX [NCI_SzakmunkaSzerzodes_TanevId]
    ON [dbo].[T_SZAKMUNKASZERZODES]([C_TANEVID] ASC);


GO
PRINT N'Creating Index [dbo].[T_SZERVEZET].[NCI_Szervezet_IntezmenyId]...';


GO
DROP INDEX IF EXISTS NCI_Szervezet_IntezmenyId ON [dbo].[T_SZERVEZET]
CREATE NONCLUSTERED INDEX [NCI_Szervezet_IntezmenyId]
    ON [dbo].[T_SZERVEZET]([C_INTEZMENYID] ASC);


GO
PRINT N'Creating Index [dbo].[T_SZERVEZET].[NCI_Szervezet_IntezmenyId_TanevId_DualishelyszintipusId]...';


GO
DROP INDEX IF EXISTS NCI_Szervezet_IntezmenyId_TanevId_DualishelyszintipusId ON [dbo].[T_SZERVEZET]
CREATE NONCLUSTERED INDEX [NCI_Szervezet_IntezmenyId_TanevId_DualishelyszintipusId]
    ON [dbo].[T_SZERVEZET]([C_INTEZMENYID] ASC, [C_TANEVID] ASC, [C_DUALISHELYSZINTIPUSID] ASC);


GO
PRINT N'Creating Index [dbo].[T_SZERVEZET].[NCI_Szervezet_ParentSzervezetId]...';


GO
DROP INDEX IF EXISTS NCI_Szervezet_ParentSzervezetId ON [dbo].[T_SZERVEZET]
CREATE NONCLUSTERED INDEX [NCI_Szervezet_ParentSzervezetId]
    ON [dbo].[T_SZERVEZET]([C_PARENTSZERVEZETID] ASC);


GO
PRINT N'Creating Index [dbo].[T_SZERVEZET].[NCI_Szervezet_TanevId]...';


GO
DROP INDEX IF EXISTS NCI_Szervezet_TanevId ON [dbo].[T_SZERVEZET]
CREATE NONCLUSTERED INDEX [NCI_Szervezet_TanevId]
    ON [dbo].[T_SZERVEZET]([C_TANEVID] ASC);


GO
PRINT N'Creating Default Constraint unnamed constraint on [dbo].[T_SZAKMUNKASZERZODES]...';


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


GO
PRINT N'Creating Default Constraint unnamed constraint on [dbo].[T_SZAKMUNKASZERZODES]...';


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


GO
PRINT N'Creating Default Constraint unnamed constraint on [dbo].[T_SZAKMUNKASZERZODES]...';


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


GO
PRINT N'Creating Default Constraint unnamed constraint on [dbo].[T_SZAKMUNKASZERZODES]...';


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


GO
PRINT N'Creating Foreign Key [dbo].[FK_SzakmunkaSzerzodes_SzervezetId_REF_Szervezet]...';


GO
ALTER TABLE [dbo].[T_SZAKMUNKASZERZODES] WITH NOCHECK
    ADD CONSTRAINT [FK_SzakmunkaSzerzodes_SzervezetId_REF_Szervezet] FOREIGN KEY ([C_SZERVEZETID]) REFERENCES [dbo].[T_SZERVEZET] ([ID]);


GO
PRINT N'Creating Foreign Key [dbo].[FK_SzakmunkaSzerzodes_TanuloTanugyiAdatokId_REF_TanuloTanugyiAdatok]...';


GO
ALTER TABLE [dbo].[T_SZAKMUNKASZERZODES] WITH NOCHECK
    ADD CONSTRAINT [FK_SzakmunkaSzerzodes_TanuloTanugyiAdatokId_REF_TanuloTanugyiAdatok] FOREIGN KEY ([C_TANULOTANUGYIADATOKID]) REFERENCES [dbo].[T_TANULOTANUGYIADATOK] ([ID]);


GO
PRINT N'Creating Foreign Key [dbo].[FK_SzakmunkaSzerzodes_IntezmenyId_REF_Intezmeny]...';


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


GO
PRINT N'Creating Foreign Key [dbo].[FK_SzakmunkaSzerzodes_TanevId_REF_Tanev]...';


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


GO
PRINT N'Creating Foreign Key [dbo].[FK_Szervezet_DualishelyszintipusId_IntezmenyId_TanevId_REF_DualisHelyszinTipus]...';


GO
ALTER TABLE [dbo].[T_SZERVEZET] DROP CONSTRAINT IF EXISTS [FK_Szervezet_DualishelyszintipusId_IntezmenyId_TanevId_REF_DualisHelyszinTipus]
ALTER TABLE [dbo].[T_SZERVEZET] WITH NOCHECK
    ADD CONSTRAINT [FK_Szervezet_DualishelyszintipusId_IntezmenyId_TanevId_REF_DualisHelyszinTipus] FOREIGN KEY ([C_DUALISHELYSZINTIPUSID], [C_INTEZMENYID], [C_TANEVID]) REFERENCES [dbo].[T_DUALISHELYSZINTIPUS] ([ID], [C_ALINTEZMENYID], [C_ALTANEVID]);


GO
PRINT N'Creating Foreign Key [dbo].[FK_Szervezet_ParentSzervezetId_REF_Szervezet]...';


GO
ALTER TABLE [dbo].[T_SZERVEZET] DROP CONSTRAINT IF EXISTS [FK_Szervezet_ParentSzervezetId_REF_Szervezet]
ALTER TABLE [dbo].[T_SZERVEZET] WITH NOCHECK
    ADD CONSTRAINT [FK_Szervezet_ParentSzervezetId_REF_Szervezet] FOREIGN KEY ([C_PARENTSZERVEZETID]) REFERENCES [dbo].[T_SZERVEZET] ([ID]);


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


GO
PRINT N'Creating Extended Property [dbo].[T_SZAKMUNKASZERZODES].[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_SZAKMUNKASZERZODES', @level2type = N'COLUMN', @level2name = N'C_INTEZMENYID';


GO
PRINT N'Creating Extended Property [dbo].[T_SZAKMUNKASZERZODES].[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_SZAKMUNKASZERZODES', @level2type = N'COLUMN', @level2name = N'C_TANEVID';


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


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


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


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


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


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


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


GO
PRINT N'Creating Extended Property [dbo].[T_SZERVEZET].[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_SZERVEZET', @level2type = N'COLUMN', @level2name = N'C_INTEZMENYID';


GO
PRINT N'Creating Extended Property [dbo].[T_SZERVEZET].[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_SZERVEZET', @level2type = N'COLUMN', @level2name = N'C_TANEVID';


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


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


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


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


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


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


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


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


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


GO
ALTER TABLE [dbo].[T_SZAKMUNKASZERZODES] WITH CHECK CHECK CONSTRAINT [FK_SzakmunkaSzerzodes_SzervezetId_REF_Szervezet];

ALTER TABLE [dbo].[T_SZAKMUNKASZERZODES] WITH CHECK CHECK CONSTRAINT [FK_SzakmunkaSzerzodes_TanuloTanugyiAdatokId_REF_TanuloTanugyiAdatok];

ALTER TABLE [dbo].[T_SZAKMUNKASZERZODES] WITH CHECK CHECK CONSTRAINT [FK_SzakmunkaSzerzodes_IntezmenyId_REF_Intezmeny];

ALTER TABLE [dbo].[T_SZAKMUNKASZERZODES] WITH CHECK CHECK CONSTRAINT [FK_SzakmunkaSzerzodes_TanevId_REF_Tanev];

IF  EXISTS (SELECT * FROM sys.objects WHERE name = N'[FK_Szervezet_DualishelyszintipusId_IntezmenyId_TanevId_REF_DualisHelyszinTipus]')

ALTER TABLE [dbo].[T_SZERVEZET]  DROP CONSTRAINT [FK_Szervezet_DualishelyszintipusId_IntezmenyId_TanevId_REF_DualisHelyszinTipus];

ALTER TABLE [dbo].[T_SZERVEZET] WITH CHECK CHECK CONSTRAINT [FK_Szervezet_DualishelyszintipusId_IntezmenyId_TanevId_REF_DualisHelyszinTipus];

ALTER TABLE [dbo].[T_SZERVEZET] WITH CHECK CHECK CONSTRAINT [FK_Szervezet_ParentSzervezetId_REF_Szervezet];


GO
PRINT N'Update complete.';

EXEC dev.uspCreateSchemaViews 'T_SZERVEZET, T_SZAKMUNKASZERZODES'
EXEC dev.sp_Global_GenerateAsyncAuditTriggerAll

GO
