init
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,458 @@
|
||||
DROP PROCEDURE IF EXISTS dev.uspCloneIntezmenyChangeIds
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE dev.uspCloneIntezmenyChangeIds
|
||||
@pSourceIntezmenyId int
|
||||
,@pSourceDatabase nvarchar(60)
|
||||
,@pEntityHistoryMigration int
|
||||
,@pDebugMode bit = 0
|
||||
-- ,@pChangeInTargetDB bit /*1 - Target DB-ben, 0 - SourceDB-ben */
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE
|
||||
@parentObjName nvarchar(50)
|
||||
,@parentColName nvarchar(50)
|
||||
,@refedObjName nvarchar(50)
|
||||
,@intezmenyColumnName nvarchar(50)
|
||||
,@sql nvarchar(max)
|
||||
,@intezmenyId int
|
||||
,@databaseToUse nvarchar(60)
|
||||
,@tableName nvarchar(50)
|
||||
,@columnName nvarchar(50)
|
||||
,@message nvarchar(max)
|
||||
,@rowCount int
|
||||
|
||||
SET @databaseToUse = @pSourceDatabase + '.dbo.'
|
||||
SET @intezmenyId = @pSourceIntezmenyId
|
||||
|
||||
SET @message = 'CHANGE IDS... - ' + FORMAT(GETDATE(), 'hh:mm:ss.ff')
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
-- ================================================================================ --
|
||||
-- Az ID-k átírása a Foreign key-k alapján --
|
||||
-- ================================================================================ --
|
||||
DECLARE tbl_cur CURSOR LOCAL 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
|
||||
,cc.COLUMN_NAME as intezmeny_column_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
|
||||
INNER JOIN (SELECT DISTINCT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN (N'C_ALINTEZMENYID', N'C_INTEZMENYID') ) cc ON cc.TABLE_NAME = OBJECT_NAME(pc.[object_id])
|
||||
WHERE pc.[name] NOT IN (N'C_ALINTEZMENYID', N'C_INTEZMENYID', 'ID') --rc.[name] <> 'ID' AND OBJECT_NAME(rc.[object_id]) <> 'T_INTEZMENY'
|
||||
AND rc.[name] NOT IN (N'C_ALTANEVID', N'C_TANEVID')
|
||||
AND OBJECT_NAME(pc.[object_id]) <> N'T_ENTITYATTRIBUTEHISTORY'
|
||||
|
||||
OPEN tbl_cur
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @parentObjName, @parentColName, @refedObjName, @intezmenyColumnName
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
|
||||
SET @sql = N'
|
||||
UPDATE x
|
||||
SET ' + @parentColName + ' = t.[newId]
|
||||
FROM ' + @databaseToUse + @parentObjName + ' x
|
||||
INNER JOIN MappingTable t ON t.oldId = x.' + @parentColName + ' AND t.tableName = ''' + @refedObjName + ''';
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intezmenyId int, @rowCount int output', @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - ' + @parentObjName + '.' + @parentColName + ' - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @parentObjName, @parentColName, @refedObjName, @intezmenyColumnName
|
||||
END
|
||||
|
||||
CLOSE tbl_cur
|
||||
DEALLOCATE tbl_cur
|
||||
|
||||
-- ================================================================================ --
|
||||
-- A ELOZOTANEVIREKORDID átírása --
|
||||
-- ================================================================================ --
|
||||
DECLARE tbl_cur CURSOR LOCAL FOR
|
||||
SELECT c.TABLE_NAME, c.COLUMN_NAME
|
||||
FROM INFORMATION_SCHEMA.COLUMNS c
|
||||
INNER JOIN INFORMATION_SCHEMA.TABLES t ON t.TABLE_NAME = c.TABLE_NAME AND c.TABLE_CATALOG = t.TABLE_CATALOG AND c.TABLE_SCHEMA = t.TABLE_SCHEMA
|
||||
WHERE COLUMN_NAME = 'ELOZOTANEVIREKORDID' AND t.TABLE_SCHEMA = 'dbo' AND t.TABLE_TYPE = 'BASE TABLE'
|
||||
AND c.TABLE_NAME IN (SELECT tableName FROM MappingTable)
|
||||
OPEN tbl_cur
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName, @columnName
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
|
||||
SET @sql = N'
|
||||
UPDATE x SET
|
||||
ELOZOTANEVIREKORDID = t.[newId]
|
||||
FROM ' + @databaseToUse + @tableName + ' x
|
||||
INNER JOIN MappingTable t ON t.oldId = x.ELOZOTANEVIREKORDID AND t.tableName = ''' + @tableName + ''';
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@rowCount int output', @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - ' + @tableName + '.ELOZOTANEVIREKORDID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName, @columnName
|
||||
END
|
||||
|
||||
CLOSE tbl_cur
|
||||
DEALLOCATE tbl_cur
|
||||
|
||||
|
||||
-- ================================================================================ --
|
||||
-- A CREATOR és a MODIFIER átírása --
|
||||
-- ================================================================================ --
|
||||
DECLARE tbl_cur CURSOR LOCAL FOR
|
||||
SELECT c.TABLE_NAME, c.COLUMN_NAME
|
||||
FROM INFORMATION_SCHEMA.COLUMNS c
|
||||
INNER JOIN INFORMATION_SCHEMA.TABLES t ON t.TABLE_NAME = c.TABLE_NAME AND c.TABLE_CATALOG = t.TABLE_CATALOG AND c.TABLE_SCHEMA = t.TABLE_SCHEMA
|
||||
WHERE COLUMN_NAME IN ('CREATOR', 'MODIFIER') AND t.TABLE_SCHEMA = 'dbo' AND t.TABLE_TYPE = 'BASE TABLE'
|
||||
AND c.TABLE_NAME IN (SELECT tableName FROM MappingTable)
|
||||
ORDER BY c.TABLE_NAME
|
||||
|
||||
OPEN tbl_cur
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName, @columnName
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
|
||||
SET @sql = N'
|
||||
UPDATE x
|
||||
SET ' + @columnName + ' = t.[newId]
|
||||
FROM ' + @databaseToUse + @tableName + ' x
|
||||
INNER JOIN MappingTable t ON t.oldId = x.' + @columnName + ' AND t.tableName = ''T_FELHASZNALO'';
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@rowCount int output', @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - ' + @tableName + '.' + @columnName + ' - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName, @columnName
|
||||
END
|
||||
|
||||
CLOSE tbl_cur
|
||||
DEALLOCATE tbl_cur
|
||||
|
||||
-- ================================================================================ --
|
||||
-- FK nincs, de át kell írni az ID-kat --
|
||||
-- ================================================================================ --
|
||||
SET @sql = N'
|
||||
UPDATE o SET
|
||||
o.C_CSENGETESIRENDID = newId
|
||||
FROM ' + @databaseToUse + 'T_ORARENDIORA o
|
||||
INNER JOIN MappingTable t ON t.oldId = o.C_CSENGETESIRENDID
|
||||
WHERE o.C_INTEZMENYID = @intezmenyId
|
||||
AND t.tableName = ''T_CSENGETESIREND''
|
||||
|
||||
SET @rowCount = @@ROWCOUNT'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intezmenyId int, @rowCount int output', @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_ORARENDIORA.C_CSENGETESIRENDID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @sql = N'
|
||||
UPDATE o SET
|
||||
o.C_CSENGETESIRENDORAID = newId
|
||||
FROM ' + @databaseToUse + 'T_ORARENDIORA o
|
||||
INNER JOIN MappingTable t ON t.oldId = o.C_CSENGETESIRENDORAID
|
||||
WHERE o.C_INTEZMENYID = @intezmenyId
|
||||
AND t.tableName = ''T_CSENGETESIRENDORA''
|
||||
|
||||
SET @rowCount = @@ROWCOUNT'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intezmenyId int, @rowCount int output', @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_ORARENDIORA.C_CSENGETESIRENDORAID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @sql = N'
|
||||
|
||||
UPDATE o SET
|
||||
o.C_CSENGETESIRENDID = newId
|
||||
FROM ' + @databaseToUse + 'T_TANITASIORA o
|
||||
INNER JOIN MappingTable t ON t.oldId = o.C_CSENGETESIRENDID
|
||||
WHERE o.C_INTEZMENYID = @intezmenyId
|
||||
AND t.tableName = ''T_CSENGETESIREND''
|
||||
|
||||
SET @rowCount = @@ROWCOUNT'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intezmenyId int, @rowCount int output', @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_TANITASIORA.C_CSENGETESIRENDID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @sql = N'
|
||||
|
||||
UPDATE o SET
|
||||
o.C_CSENGETESIRENDORAID = newId
|
||||
FROM ' + @databaseToUse + 'T_TANITASIORA o
|
||||
INNER JOIN MappingTable t ON t.oldId = o.C_CSENGETESIRENDORAID
|
||||
WHERE o.C_INTEZMENYID = @intezmenyId
|
||||
AND t.tableName = ''T_CSENGETESIRENDORA''
|
||||
|
||||
SET @rowCount = @@ROWCOUNT'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intezmenyId int, @rowCount int output', @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_TANITASIORA.C_CSENGETESIRENDORAID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @sql = N'
|
||||
|
||||
UPDATE o SET
|
||||
o.C_ORARENDIORAGROUPID = newId
|
||||
FROM ' + @databaseToUse + 'T_ORARENDIORA o
|
||||
INNER JOIN MappingTable t ON t.oldId = o.C_ORARENDIORAGROUPID
|
||||
WHERE o.C_INTEZMENYID = @intezmenyId
|
||||
AND t.tableName = ''T_ORARENDIORA''
|
||||
|
||||
SET @rowCount = @@ROWCOUNT'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intezmenyId int, @rowCount int output', @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_ORARENDIORA.C_ORARENDIORAGROUPID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @sql = N'
|
||||
|
||||
UPDATE o SET
|
||||
o.C_ORARENDIORAGROUPID = newId
|
||||
FROM ' + @databaseToUse + 'T_TANITASIORA o
|
||||
INNER JOIN MappingTable t ON t.oldId = o.C_ORARENDIORAGROUPID
|
||||
WHERE o.C_INTEZMENYID = @intezmenyId
|
||||
AND t.tableName = ''T_ORARENDIORA''
|
||||
|
||||
SET @rowCount = @@ROWCOUNT'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intezmenyId int, @rowCount int output', @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_TANITASIORA.C_ORARENDIORAGROUPID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @sql = N'
|
||||
|
||||
UPDATE o SET
|
||||
o.C_FOGLALKOZASID = newId
|
||||
FROM ' + @databaseToUse + 'T_ORARENDIORA o
|
||||
INNER JOIN MappingTable t ON t.oldId = o.C_FOGLALKOZASID
|
||||
WHERE o.C_INTEZMENYID = @intezmenyId
|
||||
AND t.tableName = ''T_FOGLALKOZAS''
|
||||
|
||||
SET @rowCount = @@ROWCOUNT'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intezmenyId int, @rowCount int output', @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_ORARENDIORA.C_FOGLALKOZASID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @sql = N'
|
||||
UPDATE o SET
|
||||
o.C_FOGLALKOZASID = newId
|
||||
FROM ' + @databaseToUse + 'T_TANITASIORA o
|
||||
INNER JOIN MappingTable t ON t.oldId = o.C_FOGLALKOZASID
|
||||
WHERE o.C_INTEZMENYID = @intezmenyId
|
||||
AND t.tableName = ''T_FOGLALKOZAS''
|
||||
|
||||
SET @rowCount = @@ROWCOUNT'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intezmenyId int, @rowCount int output', @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_TANITASIORA.C_FOGLALKOZASID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
-- ================================================================================ --
|
||||
-- T_DASHBOARDUZENETFELHASZNALO-k átírása --
|
||||
-- ================================================================================ --
|
||||
SET @sql = N'
|
||||
UPDATE o SET
|
||||
o.C_DASHBOARDUZENETID = trgd.ID
|
||||
FROM ' + @databaseToUse + 'T_DASHBOARDUZENETFELHASZNALO o
|
||||
INNER JOIN ' + @databaseToUse + 'T_DASHBOARDUZENET srcd ON o.C_DASHBOARDUZENETID = srcd.ID
|
||||
INNER JOIN T_DASHBOARDUZENET trgd ON srcd.C_EGYEDIAZONOSITO = trgd.C_EGYEDIAZONOSITO'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@rowCount int output',@rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_DASHBOARDUZENETFELHASZNALO.C_DASHBOARDUZENETID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
-- ================================================================================ --
|
||||
-- ENTITY HISTORY ID-k átírása --
|
||||
-- ================================================================================ --
|
||||
IF @pEntityHistoryMigration = 1 BEGIN
|
||||
SET @sql = N'
|
||||
UPDATE e
|
||||
SET e.C_TANEVID = t.newId
|
||||
FROM ' + @databaseToUse + 'T_ENTITYHISTORY e
|
||||
INNER JOIN MappingTable t ON t.oldId = e.C_TANEVID AND t.tableName = ''T_TANEV''
|
||||
--WHERE e.C_INTEZMENYID = @intezmenyId
|
||||
|
||||
SET @rowCount = @@ROWCOUNT'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intezmenyId int, @rowCount int output', @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_ENTITYHISTORY.C_TANEVID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @sql = N'
|
||||
UPDATE e
|
||||
SET e.C_ENTITYID = t.newId
|
||||
FROM ' + @databaseToUse + 'T_ENTITYHISTORY e
|
||||
INNER JOIN MappingTable t ON t.oldId = e.C_ENTITYID AND t.tableName = e.C_ENTITYNAME
|
||||
--WHERE e.C_INTEZMENYID = @intezmenyId
|
||||
|
||||
SET @rowCount = @@ROWCOUNT'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intezmenyId int, @rowCount int output', @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_ENTITYHISTORY.C_ENTITYID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @sql = N'
|
||||
|
||||
|
||||
UPDATE e
|
||||
SET e.C_FELHASZNALOID = t.newId
|
||||
FROM ' + @databaseToUse + 'T_ENTITYHISTORY e
|
||||
INNER JOIN MappingTable t ON t.oldId = e.C_FELHASZNALOID AND t.tableName = ''T_FELHASZNALO''
|
||||
--WHERE e.C_INTEZMENYID = @intezmenyId
|
||||
|
||||
SET @rowCount = @@ROWCOUNT'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intezmenyId int, @rowCount int output', @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_ENTITYHISTORY.C_FELHASZNALOID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @sql = N'
|
||||
|
||||
UPDATE ea
|
||||
SET ea.C_ENTITYHISTORYID = t.newId
|
||||
FROM ' + @databaseToUse + 'T_ENTITYATTRIBUTEHISTORY ea
|
||||
INNER JOIN MappingTable t ON t.oldId = ea.C_ENTITYHISTORYID AND t.tableName = ''T_ENTITYHISTORY''
|
||||
--WHERE e.C_INTEZMENYID = @intezmenyId
|
||||
|
||||
SET @rowCount = @@ROWCOUNT'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intezmenyId int, @rowCount int output', @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_ENTITYATTRIBUTEHISTORY.C_ENTITYHISTORYID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
END
|
||||
IF @pEntityHistoryMigration = 1 BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE [name] = 'IX_TMP_001') BEGIN
|
||||
SET @sql = N'
|
||||
CREATE INDEX IX_TMP_001 ON ' + @databaseToUse + 'T_ENTITYHISTORY (C_ENTITYNAME, C_INTEZMENYID)
|
||||
WHERE C_INTEZMENYID = ' + CAST(@intezmenyId AS NVARCHAR(10)) + ';
|
||||
|
||||
CREATE INDEX IX_TMP_002 ON ' + @databaseToUse + 'T_ENTITYATTRIBUTEHISTORY (C_ENTITYHISTORYID, C_PROPERTYNAME)
|
||||
INCLUDE (C_CURRENTVALUE, C_ORIGINALVALUE)
|
||||
'
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql
|
||||
END
|
||||
|
||||
DECLARE tbl_cur CURSOR LOCAL 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
|
||||
-- ,rc.[name] AS referenced_column_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 pc.[name] NOT IN (N'C_ALINTEZMENYID', N'C_INTEZMENYID', 'ID') --rc.[name] <> 'ID' AND OBJECT_NAME(rc.[object_id]) <> 'T_INTEZMENY'
|
||||
AND rc.[name] NOT IN (N'C_ALTANEVID', N'C_TANEVID')
|
||||
AND NOT pc.[name] = 'C_NAME' -- Tábla - Oszlop kivételek
|
||||
AND OBJECT_NAME(rc.[object_id]) IN (SELECT tableName FROM MappingTable)
|
||||
ORDER BY OBJECT_NAME(pc.[object_id])
|
||||
|
||||
OPEN tbl_cur
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @parentObjName, @parentColName, @refedObjName
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
--PRINT @parentColName + ' - ' + @parentObjName
|
||||
SET @sql = N'
|
||||
UPDATE a
|
||||
SET a.C_CURRENTVALUE = CAST(t.[newId] AS varchar(30))
|
||||
FROM ' + @databaseToUse + 'T_ENTITYATTRIBUTEHISTORY a
|
||||
INNER JOIN ' + @databaseToUse + 'T_ENTITYHISTORY e ON a.C_ENTITYHISTORYID = e.ID
|
||||
INNER JOIN MappingTable t ON t.oldId = TRY_CAST(NULLIF(a.C_CURRENTVALUE, N''#NULL#'') AS int)
|
||||
AND t.tableName = @refedObjName
|
||||
AND a.C_PROPERTYNAME = @parentColName
|
||||
AND e.C_ENTITYNAME = @parentObjName
|
||||
AND e.C_INTEZMENYID = @pIntezmenyId
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql,
|
||||
N'@parentObjName nvarchar(50), @parentColName nvarchar(50), @refedObjName nvarchar(50), @pIntezmenyId int, @rowCount int output',
|
||||
@parentObjName, @parentColName, @refedObjName, @intezmenyId, @rowCount output
|
||||
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_ENTITYATTRIBUTEHISTORY.C_CURRENTVALUE - ' + @parentObjName + '.' + @parentColName + ' - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @sql = N'
|
||||
UPDATE a
|
||||
SET a.C_ORIGINALVALUE = CAST(t.[newId] AS varchar(30))
|
||||
FROM ' + @databaseToUse + 'T_ENTITYATTRIBUTEHISTORY a
|
||||
INNER JOIN ' + @databaseToUse + 'T_ENTITYHISTORY e ON a.C_ENTITYHISTORYID = e.ID
|
||||
INNER JOIN MappingTable t ON t.oldId = TRY_CAST(NULLIF(a.C_ORIGINALVALUE, N''#NULL#'') AS int)
|
||||
AND t.tableName = @refedObjName
|
||||
AND a.C_PROPERTYNAME = @parentColName
|
||||
AND e.C_ENTITYNAME = @parentObjName
|
||||
AND e.C_INTEZMENYID = @pIntezmenyId'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql,
|
||||
N'@parentObjName nvarchar(50), @parentColName nvarchar(50), @refedObjName nvarchar(50), @pIntezmenyId int, @rowCount int output',
|
||||
@parentObjName, @parentColName, @refedObjName, @intezmenyId, @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_ENTITYATTRIBUTEHISTORY.C_ORIGINALVALUE - ' + @parentObjName + '.' + @parentColName + ' - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @parentObjName, @parentColName, @refedObjName
|
||||
END
|
||||
|
||||
CLOSE tbl_cur
|
||||
DEALLOCATE tbl_cur
|
||||
|
||||
SET @sql = N'
|
||||
UPDATE e
|
||||
SET e.C_TANEVID = t.newId
|
||||
FROM ' + @databaseToUse + 'T_ENTITYHISTORY e
|
||||
INNER JOIN MappingTable t ON t.oldId = e.C_TANEVID AND t.tableName = ''T_TANEV''
|
||||
--WHERE e.C_INTEZMENYID = @intezmenyId;'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N' @rowCount int output', @rowCount output
|
||||
SET @message = ' ID ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_ENTITYHISTORY.C_TANEVID - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
DROP INDEX IF EXISTS IX_TMP_001 ON T_ENTITYHISTORY
|
||||
DROP INDEX IF EXISTS IX_TMP_002 ON T_ENTITYATTRIBUTEHISTORY
|
||||
END
|
||||
|
||||
SET @message = 'CHANGE IDS DONE - ' + FORMAT(GETDATE(), 'HH:mm:ss.ff')
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
END
|
||||
GO
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user