﻿DECLARE 
   @tableName nvarchar(50)
  ,@columnName nvarchar(50)
  ,@description nvarchar(2000)

DECLARE tableCursor CURSOR LOCAL FOR 
SELECT t.TABLE_NAME, c.COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS c 
  INNER JOIN INFORMATION_SCHEMA.TABLES t ON t.TABLE_SCHEMA = c.TABLE_SCHEMA AND t.TABLE_NAME = c.TABLE_NAME
WHERE c.TABLE_SCHEMA = 'dbo'
  AND t.TABLE_TYPE = 'BASE TABLE'
  AND t.TABLE_NAME LIKE 'T[_]%'
  AND c.COLUMN_NAME IN (
     N'ID'
    ,N'C_INTEZMENYID'
    ,N'C_TANEVID'
    ,N'C_ALINTEZMENYID'
    ,N'C_ALTANEVID'
    ,N'TOROLT'
    ,N'SERIAL'
    ,N'LASTCHANGED'
    ,N'CREATED'
    ,N'MODIFIER'
    ,N'CREATOR'
    ,N'ELOZOTANEVIREKORDID'
    ,N'ELOZOTANEVIREKORDIDA'
  )

OPEN tableCursor
FETCH NEXT FROM tableCursor INTO @tableName, @columnName
WHILE @@FETCH_STATUS = 0 BEGIN
  SET @description = 
    CASE @columnName
      WHEN N'ID' THEN 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)'
      WHEN N'C_INTEZMENYID' THEN N'Az intézmény ID-ja, amihez a rekord tartozik'
      WHEN N'C_TANEVID' THEN N'A tanév ID-ja, amihez a rekord tartozik'
      WHEN N'C_ALINTEZMENYID' THEN N'Az intézmény ID-ja, amihez a rekord tartozik (altábla esetén)'
      WHEN N'C_ALTANEVID' THEN N'A tanév ID-ja, amihez a rekord tartozik (altábla esetén)'
      WHEN N'TOROLT' THEN N'A rekord logikai töröltségét jelző flag'
      WHEN N'SERIAL' THEN 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'
      WHEN N'LASTCHANGED' THEN N'  A rekord utolsó módosításának időpontja'
      WHEN N'CREATED' THEN N'A rekord létrehozásának időpontja '
      WHEN N'MODIFIER' THEN N'A rekordot utoljára módosító felhasználó ID-ja'
      WHEN N'CREATOR' THEN N'A rekordot létrehozó felhasználó ID-ja'
      WHEN N'ELOZOTANEVIREKORDID' THEN N'A rekord előző tanévben lévő ID-ja'
      WHEN N'ELOZOTANEVIREKORDIDA' THEN N'A rekord előző tanévben lévő ID-ja (altábla esetén) '
      ELSE N'A rekord régi, Neptun Naplóban lévő ID-ja. (migrációval került be)'
    END;

  EXEC sp_addextendedproperty 
     @name = N'MS_Description'
    ,@value = @description
    ,@level0type = N'Schema', @level0name = N'dbo'
    ,@level1type = N'Table',  @level1name = @tableName
    ,@level2type = N'Column', @level2name = @columnName;

  FETCH NEXT FROM tableCursor INTO @tableName, @columnName
END
CLOSE tableCursor
DEALLOCATE tableCursor
GO
    