﻿DECLARE @Data TABLE (
   Tabla nvarchar(200)
  ,Id int
  ,Nev nvarchar(1000)
  ,AliasNev nvarchar(1000)
)

DECLARE @sql nvarchar(max)
DECLARE @Tabla nvarchar(200), @Id int, @Nev nvarchar(1000), @AliasNev nvarchar(1000)

INSERT INTO @Data (Tabla, Id, Nev, AliasNev) VALUES
   ('T_DKT_DIC_AVATARTIPUS', 0, 'Alap', 'Alap')
  ,('T_DKT_DIC_AVATARTIPUS', 1, 'Saját kép', 'SajatKep')

  ,('T_DKT_DIC_CSAKTANARIRHATUZENOFALRATIPUS', 0, 'Nem', 'Nem')
  ,('T_DKT_DIC_CSAKTANARIRHATUZENOFALRATIPUS', 1, 'Igen', 'Igen')

  ,('T_DKT_DIC_HFBEADANDOTIPUS', 0, 'Nem', 'Nem')
  ,('T_DKT_DIC_HFBEADANDOTIPUS', 1, 'Igen', 'Igen')

  ,('T_DKT_DIC_HFCSATOLASENGEDELYEZESTIPUS', 0, 'Nem', 'Nem')
  ,('T_DKT_DIC_HFCSATOLASENGEDELYEZESTIPUS', 1, 'Igen', 'Igen')

  ,('T_DKT_DIC_HFELOREBEIRTFELADATMEGJELENITESE', 0, 'Azonnal látható', 'AzonnalLathato')
  ,('T_DKT_DIC_HFELOREBEIRTFELADATMEGJELENITESE', 1, 'A tanóra napjától látható', 'ATanoraNapjatolLathato')
  ,('T_DKT_DIC_HFELOREBEIRTFELADATMEGJELENITESE', 2, 'A naplózás után látható', 'ANaplozasUtanLathato')

  ,('T_DKT_DIC_HFUZENOFALENGEDELYEZESTIPUS', 0, 'Nem', 'Nem')
  ,('T_DKT_DIC_HFUZENOFALENGEDELYEZESTIPUS', 1, 'Igen', 'Igen')

  ,('T_DKT_DIC_MINDENUZENETKOZPONTIFALONTIPUS', 0, 'Nem', 'Nem')
  ,('T_DKT_DIC_MINDENUZENETKOZPONTIFALONTIPUS', 1, 'Igen', 'Igen')

  ,('T_DKT_DIC_OFBEADANDOTIPUS', 0, 'Nem', 'Nem')
  ,('T_DKT_DIC_OFBEADANDOTIPUS', 1, 'Igen', 'Igen')

  ,('T_DKT_DIC_OFCSATOLASENGEDELYEZESTIPUS', 0, 'Nem', 'Nem')
  ,('T_DKT_DIC_OFCSATOLASENGEDELYEZESTIPUS', 1, 'Igen', 'Igen')

  ,('T_DKT_DIC_OFEGYEDIERTEKELESTIPUS', 0, 'Pontszám', 'Pontszam')
  ,('T_DKT_DIC_OFEGYEDIERTEKELESTIPUS', 1, 'Osztályzat', 'Osztalyzat')
  ,('T_DKT_DIC_OFEGYEDIERTEKELESTIPUS', 2, 'Szöveges értékelés', 'SzovegesErtekeles')
  ,('T_DKT_DIC_OFEGYEDIERTEKELESTIPUS', 3, 'Százalékos értékelés', 'SzazalekosErtekeles')
  ,('T_DKT_DIC_OFEGYEDIERTEKELESTIPUS', 4, 'Csak elfogadás jelölés', 'CsakElfogadasJeloles')
  ,('T_DKT_DIC_OFEGYEDIERTEKELESTIPUS', 5, 'Nincs értékelés', 'NincsErtekeles')

  ,('T_DKT_DIC_OFELOREBEIRTFELADATMEGJELENITESE', 0, 'Azonnal látható', 'AzonnalLathato')
  ,('T_DKT_DIC_OFELOREBEIRTFELADATMEGJELENITESE', 1, 'A tanóra napjától látható', 'ATanoraNapjatolLathato')
  ,('T_DKT_DIC_OFELOREBEIRTFELADATMEGJELENITESE', 2, 'A naplózás után látható', 'ANaplozasUtanLathato')

  ,('T_DKT_DIC_OFUZENOFALENGEDELYEZESTIPUS', 0, 'Nem', 'Nem')
  ,('T_DKT_DIC_OFUZENOFALENGEDELYEZESTIPUS', 1, 'Igen', 'Igen')

  ,('T_DKT_DIC_UZENETFORRASTIPUS', 0, 'Alap', 'Alap')
  ,('T_DKT_DIC_UZENETFORRASTIPUS', 1, 'Tanár üzenőfal', 'TanarUzenofal')
  ,('T_DKT_DIC_UZENETFORRASTIPUS', 2, 'Munkatér üzenőfal', 'MunkaTerUzenofal')
  ,('T_DKT_DIC_UZENETFORRASTIPUS', 3, 'Egyedi üzenőfal', 'EgyediUzenofal')
  ,('T_DKT_DIC_UZENETFORRASTIPUS', 4, 'Óra', 'Ora')
  ,('T_DKT_DIC_UZENETFORRASTIPUS', 5, 'Házi feladat', 'HaziFeladat')
  ,('T_DKT_DIC_UZENETFORRASTIPUS', 6, 'Órai feladat', 'OraiFeladat')

  ,('T_DKT_DIC_UZENETLATHATOSAG', 0, 'Nem', 'Nem')
  ,('T_DKT_DIC_UZENETLATHATOSAG', 1, 'Igen', 'Igen')

  ,('T_DKT_DIC_UZENOFALTIPUS', 0, 'Alkalmazott', 'Alkalmazott')
  ,('T_DKT_DIC_UZENOFALTIPUS', 1, 'Munkatér', 'MunkaTer')
  ,('T_DKT_DIC_UZENOFALTIPUS', 2, 'Egyedi', 'Egyedi')
  ,('T_DKT_DIC_UZENOFALTIPUS', 3, 'Házi feladat', 'HaziFeladat')
  ,('T_DKT_DIC_MUNKATERTIPUS', 0, 'Nem törölt tantárgyfelosztás', 'NemToroltTantargyfelosztas')
  ,('T_DKT_DIC_MUNKATERTIPUS', 1, 'Törölt tantárgyfelosztás amihez nincs nem törölt', 'ToroltTantargyfelosztasAmihezNincsNemTorolt')
  ,('T_DKT_DIC_MUNKATERTIPUS', 2, 'Órarendi amihez nincs tantárgyfelosztás', 'OrarendiAmihezNincsTantargyfelosztas')

  ,('T_DKT_DIC_FELADATERTEKELESTIPUS', 0, 'Osztályzat', 'Osztalyzat')
  ,('T_DKT_DIC_FELADATERTEKELESTIPUS', 1, 'Szöveges értékelés', 'SzovegesErtekeles')
  ,('T_DKT_DIC_FELADATERTEKELESTIPUS', 2, 'Százalékos értékelés', 'SzazalekosErtekeles')
  ,('T_DKT_DIC_FELADATERTEKELESTIPUS', 3, 'Csak elfogadás jelölés', 'CsakElfogadasJeloles')
  ,('T_DKT_DIC_FELADATERTEKELESTIPUS', 4, 'Nincs értékelés', 'NincsErtekeles')
  ,('T_DKT_DIC_FELADATERTEKELESTIPUS', 5, 'Pontszám', 'Pontszam')

  ,('T_DKT_DIC_FELADATTIPUS', 0, 'Házi feladat', 'HaziFeladat')
  ,('T_DKT_DIC_FELADATTIPUS', 1, 'Órai feladat', 'OraiFeladat')

  ,('T_DKT_DIC_TANULOFELADATBEADASSTATUSZ', 0, 'Nem nyitotta meg', 'NemNyitottaMeg')
  ,('T_DKT_DIC_TANULOFELADATBEADASSTATUSZ', 1, 'Megnyitotta', 'Megnyitotta')
  ,('T_DKT_DIC_TANULOFELADATBEADASSTATUSZ', 2, 'Folyamatban', 'Folyamatban')
  ,('T_DKT_DIC_TANULOFELADATBEADASSTATUSZ', 3, 'Elfogadásra vár', 'ElfogadasraVar')
  ,('T_DKT_DIC_TANULOFELADATBEADASSTATUSZ', 4, 'Visszaküldve', 'Visszakuldve')
  ,('T_DKT_DIC_TANULOFELADATBEADASSTATUSZ', 5, 'Beküldve', 'Bekuldve')
  ,('T_DKT_DIC_TANULOFELADATBEADASSTATUSZ', 6, 'Elfogadva', 'Elfogadva')
  ,('T_DKT_DIC_TANULOFELADATBEADASSTATUSZ', 7, 'Nincs Elfogadva', 'NincsElfogadva')
  ,('T_DKT_DIC_TANULOFELADATBEADASSTATUSZ', 8, 'Ertekelve', 'Ertekelve')
  ,('T_DKT_DIC_TANULOFELADATBEADASSTATUSZ', 9, 'Nem adta be', 'NemAdtaBe')


DECLARE DicCursor CURSOR LOCAL FOR
SELECT Tabla, Id, Nev, AliasNev 
FROM @Data

OPEN DicCursor
FETCH NEXT FROM DicCursor INTO @Tabla, @Id, @Nev, @AliasNev

WHILE @@FETCH_STATUS = 0 BEGIN
  
  SET @sql = N'
  IF NOT EXISTS (SELECT 1 FROM ' + @Tabla + N' WHERE ID = @Id) BEGIN
    SET IDENTITY_INSERT ' + @Tabla + N' ON;
      INSERT INTO ' + @Tabla + N' (ID, C_NEV, C_ALIASNEV, C_INTEZMENYID, C_TANEVID, CREATED, LASTCHANGED, CREATOR)
      SELECT @Id, @Nev, @AliasNev, i.ID, tv.ID, GETDATE(), GETDATE(), 0
      FROM T_TANEV tv
      INNER JOIN T_INTEZMENY i ON i.ID = tv.C_INTEZMENYID
      WHERE tv.TOROLT = ''F'' AND i.TOROLT = ''F'' 
    SET IDENTITY_INSERT ' + @Tabla + N' OFF;
  END
  IF @@ROWCOUNT = 0 BEGIN
    UPDATE x SET 
      C_NEV = @Nev,
      C_ALIASNEV = @AliasNev
    FROM ' + @Tabla + N' x
    WHERE x.ID = @Id
      AND C_ALIASNEV <> @AliasNev;
  END
  '
  
  EXEC sp_executesql @sql, N'
     @Id int
    ,@Nev nvarchar(1000)
    ,@AliasNev nvarchar(1000)'
    ,@Id = @Id
    ,@Nev = @Nev
    ,@AliasNev = @AliasNev

  PRINT @sql
  FETCH NEXT FROM DicCursor INTO @Tabla, @Id, @Nev, @AliasNev
END

CLOSE DicCursor
DEALLOCATE DicCursor
GO
