This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,226 @@
SELECT id, c_type, id + 120000 AS idNew
INTO dev.CUSTOMDICT
FROM T_DICTIONARYITEMBASE d
WHERE id < 100000
GROUP BY id, c_type
HAVING count(1) < 2
ORDER BY c_type
SET IDENTITY_INSERT T_DICTIONARYITEMBASE ON
INSERT INTO T_DICTIONARYITEMBASE (
ID
,C_VALUE
,C_NAME
,C_NAME_1
,C_NAME_2
,C_NAME_3
,C_NAME_4
,C_VISIBLE
,C_CODE
,C_TYPE
,C_PROTECTED
,C_COLOR
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,ELOZOTANEVIREKORDID
,NNID
) SELECT
d.ID + 120000
,C_VALUE
,'' + C_NAME
,C_NAME_1
,C_NAME_2
,C_NAME_3
,C_NAME_4
,C_VISIBLE
,C_CODE
,d.C_TYPE
,C_PROTECTED
,C_COLOR
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,ELOZOTANEVIREKORDID
,NNID
FROM T_DICTIONARYITEMBASE d
INNER JOIN dev.CUSTOMDICT c ON d.ID = c.id AND d.C_TYPE = c.c_type
SET IDENTITY_INSERT T_DICTIONARYITEMBASE OFF
GO
DECLARE tbl_cursor CURSOR FOR
SELECT DISTINCT 'T_' + UPPER(C_TYPE)
FROM dev.CUSTOMDICT
DECLARE @tableName nvarchar(80),
@sql nvarchar(MAX)
OPEN tbl_cursor
FETCH NEXT FROM tbl_cursor INTO @tableName
WHILE @@FETCH_STATUS = 0 BEGIN
SET @sql = '
INSERT INTO ' + @tableName + ' (
ID
,C_ALINTEZMENYID
,C_ALTANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,NNID
,ELOZOTANEVIREKORDIDA
,ELOZOTANEVIREKORDID
) SELECT
ID + 120000
,C_ALINTEZMENYID
,C_ALTANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,NNID
,ELOZOTANEVIREKORDIDA
,ELOZOTANEVIREKORDID
FROM ' + @tableName + '
WHERE ID IN (SELECT ID FROM dev.CUSTOMDICT WHERE C_TYPE = SUBSTRING(''' + @tableName + ''', 3, 255))'
EXEC sys.sp_executesql @sql
FETCH NEXT FROM tbl_cursor INTO @tableName
END
CLOSE tbl_cursor
DEALLOCATE tbl_cursor
GO
DECLARE upd_cursor CURSOR FOR
SELECT
OBJECT_NAME(pc.[object_id]) AS parent_object_name
,pc.[name] AS parent_column_name
,OBJECT_NAME(rc.[object_id]) AS referenced_object_name
FROM sys.foreign_key_columns f
INNER JOIN sys.columns pc ON pc.[object_id] = f.parent_object_id AND pc.column_id = f.parent_column_id
INNER JOIN sys.columns rc ON rc.[object_id] = f.referenced_object_id AND rc.column_id = f.referenced_column_id
WHERE OBJECT_NAME(rc.[object_id]) IN (SELECT 'T_' + C_TYPE FROM dev.CUSTOMDICT)
AND pc.[name] NOT IN (N'C_ALTANEVID', N'C_TANEVID', N'C_ALINTEZMENYID', N'C_INTEZMENYID')
AND OBJECT_NAME(pc.[object_id]) <> 'T_EVFOLYAMTIPUS_OKTATASINEVELE'
DECLARE @pObj nvarchar(255), @pCol nvarchar(255), @rObj nvarchar(255), @sql nvarchar(max)
OPEN upd_cursor
FETCH NEXT FROM upd_cursor INTO @pObj, @pCol, @rObj
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = '
DISABLE TRIGGER tr_' + SUBSTRING(@pObj, 3, 255) + 'log ON ' + @pObj + ';
UPDATE x
SET ' + @pCol + ' += 120000
FROM ' + @pObj + ' x
INNER JOIN dev.CUSTOMDICT cd ON x.' + @pCol + ' = cd.ID
WHERE cd.C_TYPE = SUBSTRING(''' + @rObj + ''', 3, 255);
ENABLE TRIGGER tr_' + SUBSTRING(@pObj, 3, 255) + 'log ON ' + @pObj + ';'
EXEC sys.sp_executesql @sql
FETCH NEXT FROM upd_cursor INTO @pObj, @pCol, @rObj
END
CLOSE upd_cursor
DEALLOCATE upd_cursor
GO
DECLARE tbl_cursor CURSOR FOR
SELECT DISTINCT 'T_' + UPPER(C_TYPE) FROM dev.CUSTOMDICT
DECLARE @tableName nvarchar(80)
DECLARE @sql nvarchar(MAX)
OPEN tbl_cursor
FETCH NEXT FROM tbl_cursor INTO @tableName
WHILE @@FETCH_STATUS = 0 BEGIN
SET @sql = '
DELETE FROM ' + @tableName + '
WHERE ID IN (SELECT ID FROM dev.CUSTOMDICT WHERE C_TYPE = SUBSTRING(''' + @tableName + ''', 3, 255))
'
EXEC sys.sp_executesql @sql
FETCH NEXT FROM tbl_cursor INTO @tableName
END
CLOSE tbl_cursor
DEALLOCATE tbl_cursor
GO
declare @sql nvarchar(max) = ''
SELECT @sql += 'ALTER TABLE ' + OBJECT_NAME(parent_object_id) + ' NOCHECK CONSTRAINT ' + fk.name + char(10) + char(13)
FROM sys.foreign_keys fk
WHERE referenced_object_id = OBJECT_ID('T_DICTIONARYITEMBASE')
exec sp_executesql @sql
DELETE d
FROM T_DICTIONARYITEMBASE d
INNER JOIN dev.CUSTOMDICT c ON c.ID = d.ID AND d.C_TYPE = c.C_TYPE
DECLARE intezmenytanevekCursor CURSOR LOCAL FOR
SELECT C_INTEZMENYID, C_TANEVID
FROM T_INTEZMENYADATOK
DECLARE @intezmenyId int, @tanevId int
OPEN intezmenytanevekCursor
FETCH NEXT FROM intezmenytanevekCursor INTO @intezmenyId, @tanevId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT N'INTÉZMÉNY ID: ' + CAST(@intezmenyId AS NVARCHAR(10)) + N', TANÉV ID: ' + CAST(@tanevId AS NVARCHAR(10))
SET IDENTITY_INSERT [dbo].[T_DICTIONARYITEMBASE] ON
exec sp_Global_CreateDictionaryItems @intezmenyId, @tanevId
SET IDENTITY_INSERT [dbo].[T_DICTIONARYITEMBASE] OFF
FETCH NEXT FROM intezmenytanevekCursor INTO @intezmenyId, @tanevId
END
CLOSE intezmenytanevekCursor
DEALLOCATE intezmenytanevekCursor
SET @sql = ''
SELECT @sql += 'ALTER TABLE ' + OBJECT_NAME(parent_object_id) + ' WITH CHECK CHECK CONSTRAINT ' + fk.name + char(10) + char(13)
FROM sys.foreign_keys fk
WHERE referenced_object_id = OBJECT_ID('T_DICTIONARYITEMBASE')
exec sp_executesql @sql
go
UPDATE T_DICTIONARYITEMBASE SET C_NAME = SUBSTRING(C_NAME, 2, 1024) WHERE C_NAME like '€%'
DROP TABLE dev.CUSTOMDICT