226 lines
5.2 KiB
Transact-SQL
226 lines
5.2 KiB
Transact-SQL
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
|