kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190808124226_KRETA2_678/AlterTable.sql
2024-03-13 00:33:46 +01:00

180 lines
4.9 KiB
Transact-SQL

PRINT N'Altering [dbo].[T_FELHASZNALO]...';
GO
ALTER TABLE [dbo].[T_FELHASZNALO] ALTER COLUMN [C_EGYEDIAZONOSITO] NVARCHAR (36) NOT NULL;
GO
PRINT N'Altering [dbo].[T_GONDVISELO]...';
GO
IF COL_LENGTH('dbo.T_GONDVISELO', 'C_EGYEDIAZONOSITO') IS NULL BEGIN
ALTER TABLE [dbo].[T_GONDVISELO] ADD [C_EGYEDIAZONOSITO] NVARCHAR (36) DEFAULT ('00000000-0000-0000-0000-000000000000') NULL;
END
GO
-- AKT tanév, a felhasznalobelepes GUID-ból EGYEDIAZONOSITO
UPDATE g SET
g.C_EGYEDIAZONOSITO = fb.C_GUID
FROM T_FELHASZNALOBELEPES fb
INNER JOIN T_GONDVISELO g ON fb.C_GONDVISELOID = g.ID
INNER JOIN T_TANEV tv ON tv.ID = fb.C_TANEVID AND tv.C_NEV = '2018/2019'
WHERE fb.TOROLT = 'F'
AND g.TOROLT = 'F'
AND g.C_EGYEDIAZONOSITO IS NULL
GO
-- AKT tanév, maradék gondviselő
UPDATE g SET C_EGYEDIAZONOSITO = NEWID()
FROM T_GONDVISELO g
INNER JOIN T_TANEV tv ON tv.ID = g.C_TANEVID AND tv.C_NEV = '2018/2019'
WHERE g.C_EGYEDIAZONOSITO IS NULL
GO
-- KÖV tanévre EGYEDIAZONOSITO átvezetése
UPDATE g SET g.C_EGYEDIAZONOSITO = g2.C_EGYEDIAZONOSITO
FROM T_GONDVISELO g
INNER JOIN T_GONDVISELO g2 ON g.ELOZOTANEVIREKORDID = g2.ID
WHERE g.C_EGYEDIAZONOSITO IS NULL
AND g.C_EGYEDIAZONOSITO IS NOT NULL
GO
-- UPDATE a maradékra
UPDATE g SET
C_EGYEDIAZONOSITO = NEWID()
FROM T_GONDVISELO g
WHERE C_EGYEDIAZONOSITO IS NULL
GO
ALTER TABLE [dbo].[T_GONDVISELO]
ALTER COLUMN [C_EGYEDIAZONOSITO] NVARCHAR (36) NOT NULL;
GO
PRINT N'Altering [dbo].[T_TANTERV]...';
GO
ALTER TABLE [dbo].[T_TANTERV]
ADD [C_VEDETT] CHAR (1) DEFAULT ('F') NOT NULL;
GO
PRINT N'Creating unnamed constraint on [dbo].[T_FELHASZNALO]...';
GO
-- DROP régi default constraint
DECLARE @sql nvarchar(max) = ''
SELECT @sql = 'ALTER TABLE T_FELHASZNALO DROP CONSTRAINT ' + default_constraints.name + ';'
FROM sys.all_columns
INNER JOIN sys.tables ON all_columns.object_id = tables.object_id
INNER JOIN sys.schemas ON tables.schema_id = schemas.schema_id
INNER JOIN sys.default_constraints ON all_columns.default_object_id = default_constraints.object_id
WHERE schemas.name = 'dbo'
AND tables.name = 'T_FELHASZNALO'
AND all_columns.name = 'C_EGYEDIAZONOSITO'
EXEC sp_executesql @sql
GO
ALTER TABLE [dbo].[T_FELHASZNALO]
ADD DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [C_EGYEDIAZONOSITO];
GO
-- AKT tanév, a felhasznalobelepes GUID-ból EGYEDIAZONOSITO
UPDATE fh SET fh.C_EGYEDIAZONOSITO = fb.C_GUID
FROM T_FELHASZNALO fh
INNER JOIN T_FELHASZNALOBELEPES fb ON fb.C_FELHASZNALOID = fh.ID AND fb.C_GONDVISELOID IS NULL AND fb.TOROLT = 'F'
INNER JOIN T_TANEV tv ON tv.ID = fh.C_TANEVID AND tv.C_NEV = '2018/2019'
WHERE fh.TOROLT = 'F'
AND (fh.C_EGYEDIAZONOSITO IS NULL OR fh.C_EGYEDIAZONOSITO = '1')
-- AKT tanév, maradék felhasználónak
UPDATE fh SET fh.C_EGYEDIAZONOSITO = NEWID()
FROM T_FELHASZNALO fh
INNER JOIN T_TANEV tv ON tv.ID = fh.C_TANEVID AND tv.C_NEV = '2018/2019'
WHERE (fh.C_EGYEDIAZONOSITO IS NULL OR fh.C_EGYEDIAZONOSITO = '1')
-- KÖV tanévre EGYEDIAZONOSITO átvezetése
UPDATE kov SET kov.C_EGYEDIAZONOSITO = akt.C_EGYEDIAZONOSITO
FROM T_FELHASZNALO akt
INNER JOIN T_FELHASZNALO kov ON kov.ELOZOTANEVIREKORDID = akt.ID
WHERE akt.C_EGYEDIAZONOSITO <> '1' AND (kov.C_EGYEDIAZONOSITO IS NULL OR kov.C_EGYEDIAZONOSITO = '1')
AND akt.TOROLT = 'F'
AND kov.TOROLT = 'F'
-- UPDATE a maradékra
UPDATE T_FELHASZNALO SET
C_EGYEDIAZONOSITO = NEWID()
WHERE (C_EGYEDIAZONOSITO IS NULL OR C_EGYEDIAZONOSITO = '1')
GO
PRINT N'Refreshing [dbo].[T_FELHASZNALO_OSSZES]...';
GO
EXECUTE sp_refreshsqlmodule N'[dbo].[T_FELHASZNALO_OSSZES]';
GO
PRINT N'Refreshing [dbo].[T_GONDVISELO_OSSZES]...';
GO
EXECUTE sp_refreshsqlmodule N'[dbo].[T_GONDVISELO_OSSZES]';
GO
PRINT N'Refreshing [dbo].[T_TANTERV_OSSZES]...';
GO
EXECUTE sp_refreshsqlmodule N'[dbo].[T_TANTERV_OSSZES]';
GO
PRINT N'Update complete.';
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_GONDVISELO', 'T_GONDVISELO_OSSZES'
,'T_TANTERV', 'T_TANTERV_OSSZES'
,'T_FELHASZNALO', 'T_FELHASZNALO_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
--------------------
EXEC dev.sp_Global_GenerateAsyncAuditTriggerAll
GO
ALTER QUEUE auditLog.[AuditQueue]
WITH ACTIVATION
(
STATUS = ON,
PROCEDURE_NAME = auditLog.usp_AuditProcessing,
MAX_QUEUE_READERS = 10,
EXECUTE AS 'Kreta_tech_user'
);
GO