kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20191021104100_DB_1514/DB_1514.sql
2024-03-13 00:33:46 +01:00

153 lines
No EOL
3.9 KiB
Transact-SQL

--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