﻿--Migration
IF COL_LENGTH('dbo.T_INTEZMENYADATOK', 'CORE_CIMID') IS NULL BEGIN
  ALTER TABLE T_INTEZMENYADATOK
  ADD CORE_CIMID INT NULL
END
GO

IF COL_LENGTH('dbo.T_MUKODESIHELY', 'CORE_CIMID') IS NULL BEGIN
  ALTER TABLE T_MUKODESIHELY
  ADD CORE_CIMID INT NULL
END
GO

IF COL_LENGTH('dbo.T_INTEZMENYADATOK', 'CORE_ELERHETOSEGID') IS NULL BEGIN
  ALTER TABLE T_INTEZMENYADATOK
  ADD CORE_ELERHETOSEGID INT NULL
END
GO

IF COL_LENGTH('dbo.T_MUKODESIHELY', 'CORE_ELERHETOSEGID') IS NULL BEGIN
  ALTER TABLE T_MUKODESIHELY
  ADD CORE_ELERHETOSEGID INT NULL
END
GO

/*
DROP TABLE IF EXISTS dev.Environment
*/
/*
CREATE TABLE dev.Environment(
   [Key] NVARCHAR(255)
  ,[Value] NVARCHAR(1000)
  ,[Description] NVARCHAR(1000)
)
*/
--Itt az amelyik az adott környezetre vonatkozik
/*
	IF NOT EXISTS(SELECT 1 FROM dev.Environment WHERE [Key] = 'Fenntarto')
		BEGIN
			INSERT INTO dev.Environment([Key], [Value], [Description])
			VALUES('Fenntarto', 'KK'/'NSZFH'/'HOI'/'AZURE', 'Adott adatbázisban lévő intézmények fő fenntartója')
		END
*/

DROP SEQUENCE IF EXISTS dbo.SeqCoreMunkaugyiAdatok
GO

CREATE SEQUENCE dbo.SeqCoreMunkaugyiAdatok
  AS INT
  START WITH 1
  INCREMENT BY 1
GO

IF COL_LENGTH('dbo.T_MUNKAUGYIADATOK', 'CORE_ID') IS NULL BEGIN
  ALTER TABLE T_MUNKAUGYIADATOK
  ADD CORE_ID INT NOT NULL DEFAULT NEXT VALUE FOR dbo.SeqCoreMunkaugyiAdatok
END
GO

IF COL_LENGTH('dbo.T_TOVABBIMUNKAUGYIADATOK', 'CORE_ID') IS NULL BEGIN
  ALTER TABLE T_TOVABBIMUNKAUGYIADATOK
  ADD CORE_ID INT NOT NULL DEFAULT NEXT VALUE FOR dbo.SeqCoreMunkaugyiAdatok
END
GO


IF COL_LENGTH('dbo.T_KEPESITES_VEGZETTSEG', 'CORE_ID') IS NULL BEGIN
  ALTER TABLE T_KEPESITES_VEGZETTSEG
  ADD CORE_ID INT NOT NULL IDENTITY(1,1)
END
GO

IF COL_LENGTH('dbo.T_FELHASZNALO_SZEREPKOR', 'CORE_ID') IS NULL BEGIN
  ALTER TABLE T_FELHASZNALO_SZEREPKOR
  ADD CORE_ID INT NOT NULL IDENTITY(1,1)
END
GO


IF COL_LENGTH('dbo.T_DICTIONARYITEMBASE', 'CORE_KATEGORIAID') IS NULL BEGIN
  ALTER TABLE T_DICTIONARYITEMBASE
  ADD CORE_KATEGORIAID INT NOT NULL DEFAULT 0
END
GO

IF COL_LENGTH('dbo.T_CIM', 'CORE_PUBLIKUS') IS NULL BEGIN
  ALTER TABLE T_CIM
  ADD CORE_PUBLIKUS CHAR(1) NOT NULL DEFAULT 'F'
END
GO

-- Struktúrális változás miatt szükséges, hogy nullable legyen. 
-- Tranzakcióban kezeljük, nem fog tőlünk hibás rekord keletkezni.
ALTER TABLE dbo.T_GONDVISELO
ALTER COLUMN C_TANULOID INT NULL
GO

ALTER TABLE dbo.T_GONDVISELO
ALTER COLUMN C_ROKONSAGFOKA INT NULL
GO

ALTER TABLE dbo.T_FELHASZNALOBELEPES
ALTER COLUMN C_FELHASZNALOID INT NULL
GO

ALTER TABLE dbo.T_FELHASZNALOBELEPESTORTENET
ALTER COLUMN C_FELHASZNALOID INT NULL
GO


DECLARE @sql nvarchar(max) = ''
SELECT @sql += 'EXEC sp_refreshview ''dbo.' + [name] + '''' + char(13) + char(10) 
FROM sys.views
WHERE schema_id = 1 /*dbo*/
  AND [name] like '%_OSSZES'
EXEC sp_executesql @sql
GO


PRINT '--- intézményi view-k (dbo táblákkal megegyezõ nevû és a tábla_OSSZES nevûek) frissítése ---'

DECLARE @viewname nvarchar(100), @pureview nvarchar(100)

DECLARE semaviewk CURSOR LOCAL FOR
SELECT '['+TABLE_SCHEMA + '].[' + TABLE_NAME + ']', TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'VIEW' and TABLE_SCHEMA LIKE 'KR[_]%[_]Schema'
  AND TABLE_NAME IN (
    'T_INTEZMENYADATOK', 'T_INTEZMENYADATOK_OSSZES',
    'T_MUKODESIHELY', 'T_MUKODESIHELY_OSSZES',
    'T_MUKODESIHELY', 'T_MUKODESIHELY_OSSZES',
    'T_TOVABBIMUNKAUGYIADATOK', 'T_TOVABBIMUNKAUGYIADATOK_OSSZES',
    'T_MUNKAUGYIADATOK', 'T_MUNKAUGYIADATOK_OSSZES',
    'T_DICTIONARYITEMBASE', 'T_DICTIONARYITEMBASE_OSSZES',
    'T_CIM', 'T_CIM_OSSZES'
  ) -- ha csak néhány VIEW frissült, akkor a gyorsabb futásért ide fel lehet sorolni
ORDER BY TABLE_SCHEMA, TABLE_NAME

OPEN semaviewk
FETCH NEXT FROM semaviewk INTO @viewname, @pureview

WHILE @@FETCH_STATUS = 0 BEGIN
  PRINT @viewname
  EXEC sp_refreshview @viewname

  FETCH NEXT FROM semaviewk INTO @viewname, @pureview
END

CLOSE semaviewk
DEALLOCATE semaviewk
GO

 