init
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
-- A cél adatbázison kell futtatni.
|
||||
-- Üres DB-be másolásnál a @pChangeInTargetDB-nek 1-nek kell lenni, egyébként meg 0-nak
|
||||
|
||||
DROP PROCEDURE IF EXISTS dev.uspCloneIntezmeny
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE dev.uspCloneIntezmeny
|
||||
@pSourceIntezmenyId int
|
||||
,@pSourceDatabase nvarchar(60)
|
||||
,@pEntityHistoryMigration int /* 0 - Nem kell, 1 - csak migráció, 2 - átID-zás is */
|
||||
,@pChangeIds bit /*1 - Target DB-ben, 0 - SourceDB-ben (az eredetileg üresben) */
|
||||
,@pDebugMode bit = 0
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
DECLARE
|
||||
@sql nvarchar(max)
|
||||
,@sp nvarchar(max)
|
||||
,@message nvarchar(max)
|
||||
|
||||
DROP TABLE IF EXISTS MappingTable
|
||||
|
||||
CREATE TABLE MappingTable (
|
||||
tableName nvarchar(50),
|
||||
oldId int,
|
||||
newId int
|
||||
)
|
||||
|
||||
SET @message = 'CLONE START - ' + FORMAT(GETDATE(), 'hh:mm:ss.ff')
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
-- ================================================================== --
|
||||
-- TARGET - TRIGGER, CONSTRAINT kikapcsolás --
|
||||
-- =======================================================holn======= --
|
||||
SET @sql = N''
|
||||
|
||||
SELECT @sql += N'
|
||||
ALTER INDEX ' + i.name + ' ON ' + t.name + N' DISABLE;'
|
||||
FROM sys.indexes i
|
||||
INNER JOIN sys.tables t ON t.object_id = i.object_id
|
||||
WHERE i.type = 2 /*non clustered*/
|
||||
AND t.name LIKE 'T[_]%'
|
||||
AND t.schema_id = 1
|
||||
|
||||
SET @message = 'INDEX DISABLE... - ' + FORMAT(GETDATE(), 'hh:mm:ss.ff')
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql
|
||||
SET @message = 'INDEX DISABLE DONE - ' + FORMAT(GETDATE(), 'hh:mm:ss.ff')
|
||||
RAISERROR ('INDEX DISABLE DONE', 10, 1) WITH NOWAIT
|
||||
|
||||
SET @sql = N''
|
||||
|
||||
SELECT @sql = @sql + N'
|
||||
ALTER TABLE ' + OBJECT_NAME(fk.parent_object_id) + ' NOCHECK CONSTRAINT ' + OBJECT_NAME(fk.object_id) + CHAR(13) + CHAR(10)
|
||||
FROM sys.foreign_keys fk
|
||||
WHERE OBJECT_NAME(fk.parent_object_id) LIKE 'T[_]%'
|
||||
|
||||
SET @message = 'CONSTRAINT OFF... - ' + FORMAT(GETDATE(), 'hh:mm:ss.ff')
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql
|
||||
SET @message = 'CONSTRAINT OFF DONE - ' + FORMAT(GETDATE(), 'hh:mm:ss.ff')
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
|
||||
SET @message = 'TRIGGER DISABLE... - ' + FORMAT(GETDATE(), 'hh:mm:ss.ff')
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
EXEC sp_msforeachtable 'DISABLE TRIGGER ALL ON ?'
|
||||
SET @message = 'TRIGGER DISABLE DONE - ' + FORMAT(GETDATE(), 'hh:mm:ss.ff')
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
IF @pChangeIds = 1 BEGIN
|
||||
|
||||
-- ============================================================== --
|
||||
-- MappingTábla --
|
||||
-- ============================================================== --
|
||||
EXEC dev.uspCloneIntezmenyCreateMapping
|
||||
@pSourceIntezmenyId = @pSourceIntezmenyId
|
||||
,@pSourceDatabase = @pSourceDatabase
|
||||
,@pDebugMode = @pDebugMode
|
||||
|
||||
-- ============================================================== --
|
||||
-- CHANGE IN TARGET DB - @pChangeInTargetDB = 1 --
|
||||
-- ============================================================== --
|
||||
EXEC dev.uspCloneIntezmenyChangeIds
|
||||
@pSourceIntezmenyId = @pSourceIntezmenyId
|
||||
,@pSourceDatabase = @pSourceDatabase
|
||||
,@pEntityHistoryMigration = @pEntityHistoryMigration /* 0 - Nem kell, 1 - csak migráció, 2 - átID-zás is */
|
||||
,@pDebugMode = @pDebugMode
|
||||
END
|
||||
|
||||
-- ============================================================== --
|
||||
-- INTÉZMÉNY MÁSOLÁSA --
|
||||
-- ============================================================== --
|
||||
EXEC dev.uspCloneIntezmenyMigration
|
||||
@pSourceIntezmenyId = @pSourceIntezmenyId
|
||||
,@pSourceDatabase = @pSourceDatabase
|
||||
,@pEntityHistoryMigration = @pEntityHistoryMigration
|
||||
,@pChangeIds = @pChangeIds
|
||||
,@pDebugMode = @pDebugMode
|
||||
|
||||
|
||||
-- ============================================================== --
|
||||
-- CHANGE IN SOURCE DB - @pChangeInTargetDB = 1 --
|
||||
-- ============================================================== --
|
||||
IF @pChangeIds = 1 BEGIN
|
||||
|
||||
-- ================================================================================ --
|
||||
-- A MappingTable mentése a dev schemába --
|
||||
-- ================================================================================ --
|
||||
DECLARE @newIntezmenyId int
|
||||
SET @sql = ''
|
||||
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = N'dbo' AND TABLE_NAME = N'MappingTable') BEGIN
|
||||
SELECT @newIntezmenyId = t1.[newId]
|
||||
FROM MappingTable t1
|
||||
WHERE t1.tableName = 'T_INTEZMENY'
|
||||
|
||||
SET @sql = 'SELECT * INTO dev.[MappingTable_' + CAST(@newIntezmenyId AS nvarchar(100)) + '_' + FORMAT(GETDATE(), 'yyyyMMdd_HHmm') + '_' + @pSourceDatabase + '] FROM MappingTable'
|
||||
EXEC sp_executesql @sql
|
||||
END
|
||||
|
||||
|
||||
-- ============================================================== --
|
||||
-- TARGET - TRIGGER, CONSTRAINT visszakapcsolás --
|
||||
-- ============================================================== --
|
||||
SET @sql = ''
|
||||
SELECT @sql += 'ALTER INDEX ' + i.[name] + ' ON ' + t.[name] + ' REBUILD;' + char(13) + char(10)
|
||||
FROM sys.indexes i
|
||||
INNER JOIN sys.tables t ON t.object_id = i.object_id
|
||||
WHERE i.type = 2 /*non clustered*/
|
||||
AND t.name LIKE 'T[_]%'
|
||||
AND t.schema_id = 1
|
||||
|
||||
|
||||
RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql
|
||||
|
||||
SET @sql = ''
|
||||
SELECT @sql += N'ALTER TABLE ' + TABLE_NAME + N' WITH CHECK CHECK CONSTRAINT ALL; PRINT FORMAT(GETDATE(), ''yyyy-MM-dd HH:mm:ss.ff'') + '' - '' + ''' + TABLE_NAME + N''';' + CHAR(13) + CHAR(10)
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = N'dbo'
|
||||
AND TABLE_NAME LIKE 'T[_]%'
|
||||
AND TABLE_TYPE = N'BASE TABLE'
|
||||
AND TABLE_NAME NOT IN(N'T_ENTITYHISTORY', N'T_ENTITYATTRIBUTEHISTORY', N'T_FELHASZNALOBELEPES')
|
||||
--A check constreintek miatt a
|
||||
SET @sql += N'
|
||||
--ALTER TABLE T_FELHASZNALOBELEPES WITH CHECK CHECK CONSTRAINT PK_T_4025022
|
||||
ALTER TABLE T_FELHASZNALOBELEPES WITH CHECK CHECK CONSTRAINT FK_402502202_402502200
|
||||
ALTER TABLE T_FELHASZNALOBELEPES WITH CHECK CHECK CONSTRAINT FK_402502205_402502203
|
||||
ALTER TABLE T_FELHASZNALOBELEPES WITH CHECK CHECK CONSTRAINT FK_4025031_4025029
|
||||
ALTER TABLE T_FELHASZNALOBELEPES WITH CHECK CHECK CONSTRAINT FK_4025187_4025186
|
||||
'
|
||||
EXEC sp_executesql @sql
|
||||
|
||||
EXEC sp_msforeachtable 'ENABLE TRIGGER ALL ON ?'
|
||||
|
||||
|
||||
END
|
||||
END
|
||||
GO
|
||||
|
@@ -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 (OBJECT_NAME(pc.[object_id]) = 'T_FEE' AND 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
|
||||
|
@@ -0,0 +1,162 @@
|
||||
DROP PROCEDURE IF EXISTS dev.uspCloneIntezmenyCreateMapping
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE dev.uspCloneIntezmenyCreateMapping
|
||||
@pSourceIntezmenyId int
|
||||
,@pSourceDatabase nvarchar(60)
|
||||
,@pDebugMode bit = 0
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE
|
||||
@sql nvarchar(max)
|
||||
,@maxId int
|
||||
,@tableName nvarchar(100)
|
||||
,@mainTableName nvarchar(50)
|
||||
,@isIdentity bit
|
||||
,@message nvarchar(max)
|
||||
,@rowCount int
|
||||
-- ============================================================== --
|
||||
-- Mapping tábla létrehozása --
|
||||
-- ============================================================== --
|
||||
DROP TABLE IF EXISTS MappingTable
|
||||
|
||||
CREATE TABLE MappingTable (
|
||||
tableName nvarchar(50),
|
||||
oldId int,
|
||||
newId int
|
||||
)
|
||||
|
||||
SET @message = 'POPULATE MAPPINGTABLE... - ' + FORMAT(GETDATE(), 'hh:mm:ss.ff')
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
-- ============================================================== --
|
||||
-- Mapping tábla feltöltése: Intezmeny --
|
||||
-- ============================================================== --
|
||||
SELECT @maxId = ISNULL(MAX(ID), 0) FROM T_INTEZMENY;
|
||||
|
||||
SET @sql = '
|
||||
INSERT INTO MappingTable (tableName, oldId, [newId])
|
||||
SELECT ''T_INTEZMENY'', ID, @maxId + 1
|
||||
FROM ' + @pSourceDatabase + '.dbo.T_INTEZMENY
|
||||
WHERE ID = @pSourceIntezmenyId
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
'
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@pSourceIntezmenyId int, @maxId int, @rowCount int output', @pSourceIntezmenyId, @maxId, @rowCount output
|
||||
SET @message = ' MP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' T_INTEZMENY - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
-- ============================================================== --
|
||||
-- Mapping tábla feltöltése: IDENTITY() táblákból --
|
||||
-- ============================================================== --
|
||||
DECLARE tbl_cur CURSOR LOCAL FOR
|
||||
SELECT DISTINCT TABLE_NAME, COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), 'ID', 'IsIdentity')
|
||||
FROM INFORMATION_SCHEMA.COLUMNS c
|
||||
WHERE COLUMN_NAME = N'C_INTEZMENYID'
|
||||
AND TABLE_NAME IN (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA = 'dbo')
|
||||
AND c.TABLE_SCHEMA = 'dbo'
|
||||
AND TABLE_NAME NOT IN (N'T_ENTITYATTRIBUTEHISTORY', N'T_DICTIONARYTYPE')
|
||||
AND COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), 'ID', 'IsIdentity') = 1
|
||||
ORDER BY TABLE_NAME
|
||||
|
||||
|
||||
OPEN tbl_cur
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName, @isIdentity
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
|
||||
SET @sql = N'
|
||||
DECLARE @maxId int;
|
||||
SELECT @maxId = ISNULL(MAX(ID), ' + CASE WHEN @tableName = 'T_DICTIONARYITEMBASE' THEN '100000' ELSE '0' END + ') FROM ' + @tableName + ';
|
||||
|
||||
INSERT INTO MappingTable (tableName, oldId, [newId])
|
||||
SELECT DISTINCT ''' + @tableName + ''', ID, RANK() OVER(ORDER BY ID) + @maxId
|
||||
FROM ' + @pSourceDatabase + '.dbo.' + @tableName + '
|
||||
WHERE C_INTEZMENYID = @intId
|
||||
'
|
||||
|
||||
IF @tableName = 'T_DICTIONARYITEMBASE' BEGIN
|
||||
SET @sql += ' AND ID >= 100000;'
|
||||
END
|
||||
|
||||
SET @sql += N'
|
||||
SET @rowCount = @@ROWCOUNT'
|
||||
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intId int, @rowCount int output', @pSourceIntezmenyId, @rowCount output
|
||||
|
||||
SET @message = ' MP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - ' + @tableName + ' - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName, @isIdentity
|
||||
END
|
||||
|
||||
CLOSE tbl_cur
|
||||
DEALLOCATE tbl_cur
|
||||
|
||||
-- ============================================================== --
|
||||
-- Mapping tábla feltöltése: nem IDENTITY() táblákból --
|
||||
-- ============================================================== --
|
||||
DECLARE tbl_cur CURSOR LOCAL FOR
|
||||
SELECT DISTINCT TABLE_NAME, COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), 'ID', 'IsIdentity')
|
||||
FROM INFORMATION_SCHEMA.COLUMNS c
|
||||
WHERE COLUMN_NAME = N'C_ALINTEZMENYID'
|
||||
AND TABLE_NAME IN (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA = 'dbo')
|
||||
AND TABLE_NAME NOT IN (N'T_ENTITYATTRIBUTEHISTORY', N'T_ENTITYHISTORY', N'T_DICTIONARYTYPE')
|
||||
AND TABLE_SCHEMA = 'dbo'
|
||||
AND COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), 'ID', 'IsIdentity') = 0
|
||||
ORDER BY TABLE_NAME
|
||||
|
||||
OPEN tbl_cur
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName, @isIdentity
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
|
||||
SELECT @mainTableName = OBJECT_NAME(referenced_object_id)
|
||||
FROM sys.foreign_key_columns f
|
||||
INNER JOIN sys.columns rc ON rc.[object_id] = f.referenced_object_id AND rc.column_id = f.referenced_column_id
|
||||
INNER JOIN sys.columns pc ON pc.[object_id] = f.parent_object_id AND rc.column_id = f.parent_column_id
|
||||
WHERE parent_object_id = OBJECT_ID(@tableName) AND rc.[name] = 'ID' AND pc.[name] = 'ID'
|
||||
|
||||
|
||||
SET @sql = N'
|
||||
INSERT INTO MappingTable (tableName, oldId, [newId])
|
||||
SELECT DISTINCT ''' + @tableName + ''', t.oldId, t.[newId]
|
||||
FROM ' + @pSourceDatabase + '.dbo.' + @tableName + ' s
|
||||
INNER JOIN MappingTable t ON t.oldId = s.ID AND t.tableName = @mainTableName
|
||||
WHERE s.C_ALINTEZMENYID = @intId
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intId int, @mainTableName nvarchar(50), @rowCount int output', @pSourceIntezmenyId, @mainTableName, @rowCount output
|
||||
SET @message = ' MP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - ' + @tableName + ' - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName, @isIdentity
|
||||
END
|
||||
|
||||
CLOSE tbl_cur
|
||||
DEALLOCATE tbl_cur
|
||||
|
||||
|
||||
-- ============================================================== --
|
||||
-- MappingTable indexek --
|
||||
-- ============================================================== --
|
||||
CREATE CLUSTERED INDEX IX_MappingTable_01 ON MappingTable (oldId, [newId], tableName)
|
||||
CREATE INDEX IX_MappingTable_02 ON MappingTable (tableName, oldId, [newId])
|
||||
|
||||
SET @message = 'POPULATE MAPPINGTABLE DONE - ' + FORMAT(GETDATE(), 'hh:mm:ss.ff')
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
END
|
||||
GO
|
||||
|
||||
|
||||
|
@@ -0,0 +1,408 @@
|
||||
DROP PROCEDURE IF EXISTS dev.uspCloneIntezmenyMigration
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE dev.uspCloneIntezmenyMigration
|
||||
@pSourceIntezmenyId int
|
||||
,@pSourceDatabase nvarchar(60)
|
||||
,@pEntityHistoryMigration bit = 1
|
||||
,@pChangeIds bit = 1
|
||||
,@pDebugMode bit = 0
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE
|
||||
@tableName nvarchar(50)
|
||||
,@intezmenyIdColumn nvarchar(50)
|
||||
|
||||
,@isIdentity bit
|
||||
,@columnList nvarchar(max)
|
||||
,@sql nvarchar(max)
|
||||
,@newIntezmenyId int
|
||||
,@fenntartoAzonosito int
|
||||
,@firstParentCol nvarchar(50)
|
||||
,@firstRefObj nvarchar(50)
|
||||
,@secondParentCol nvarchar(50)
|
||||
,@secondRefObj nvarchar(50)
|
||||
,@message nvarchar(max)
|
||||
,@rowCount int
|
||||
|
||||
|
||||
RAISERROR ('DATA MIGRATION... ', 10, 1) WITH NOWAIT
|
||||
|
||||
SELECT @newIntezmenyId = t1.[newId] FROM MappingTable t1 WHERE t1.tableName = 'T_INTEZMENY'
|
||||
SELECT @fenntartoAzonosito = '000'
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM T_FENNTARTO WHERE ID = 0) BEGIN
|
||||
SET IDENTITY_INSERT T_FENNTARTO ON
|
||||
INSERT INTO T_FENNTARTO
|
||||
(ID, C_NEV, TOROLT, SERIAL, LASTCHANGED, CREATED, MODIFIER, CREATOR, ELOZOTANEVIREKORDID, NNID) VALUES
|
||||
(0, N'Technikai', 'F', 0, '2018-01-18 00:22:30', '2018-01-18 00:22:30', NULL, NULL, NULL, NULL)
|
||||
SET IDENTITY_INSERT T_FENNTARTO OFF
|
||||
END
|
||||
|
||||
-- ============================================================== --
|
||||
-- Az IDENTITY()-s táblák adatainak áttöltése --
|
||||
-- ============================================================== --
|
||||
DECLARE tbl_cur CURSOR LOCAL FOR
|
||||
SELECT DISTINCT TABLE_NAME, COLUMN_NAME--, COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), 'ID', 'IsIdentity')
|
||||
FROM INFORMATION_SCHEMA.COLUMNS c
|
||||
WHERE COLUMN_NAME = N'C_INTEZMENYID'
|
||||
AND TABLE_NAME IN (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA = 'dbo')
|
||||
AND c.TABLE_SCHEMA = 'dbo'
|
||||
AND TABLE_NAME NOT IN (N'T_ENTITYATTRIBUTEHISTORY', N'T_DICTIONARYTYPE', 'T_ENTITYHISTORY')
|
||||
AND COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), 'ID', 'IsIdentity') = 1
|
||||
|
||||
OPEN tbl_cur
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName, @intezmenyIdColumn
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
--PRINT @tableName
|
||||
SELECT @columnList = ISNULL(@columnList + ', ', '') + c.COLUMN_NAME
|
||||
FROM INFORMATION_SCHEMA.COLUMNS c
|
||||
WHERE c.TABLE_NAME = @tableName AND c.TABLE_SCHEMA = 'dbo' AND c.COLUMN_NAME NOT IN (N'ID', @intezmenyIdColumn)
|
||||
|
||||
SET @sql = N'
|
||||
INSERT INTO ' + @tableName + ' (ID, ' + @intezmenyIdColumn + ', ' + @columnList + ')
|
||||
SELECT ' + IIF(@pChangeIds = 1, 't.[newId], @newIntezmenyId', 'ID, ' + @intezmenyIdColumn) + ', ' + @columnList + '
|
||||
FROM ' + @pSourceDatabase + '.dbo.' + @tableName + ' x
|
||||
' + IIF(@pChangeIds = 1, 'INNER JOIN MappingTable t ON t.oldId = x.ID AND t.tableName = ''' + @tableName + '''', '') + '
|
||||
WHERE ' + @intezmenyIdColumn + ' = @intId'
|
||||
|
||||
|
||||
SET @sql = N'
|
||||
SET IDENTITY_INSERT ' + @tableName + ' ON' + @sql + '
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
SET IDENTITY_INSERT ' + @tableName + ' OFF
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intId int, @newIntezmenyId int, @rowCount int output', @pSourceIntezmenyId, @newIntezmenyId, @rowCount output
|
||||
SET @message = ' CP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - ' + @tableName + ' - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @columnList = NULL
|
||||
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName, @intezmenyIdColumn
|
||||
END
|
||||
|
||||
CLOSE tbl_cur
|
||||
DEALLOCATE tbl_cur
|
||||
|
||||
|
||||
-- ============================================================== --
|
||||
-- Az Intézmény adatainak áttöltése --
|
||||
-- ============================================================== --
|
||||
SET @sql = '
|
||||
SET IDENTITY_INSERT T_INTEZMENY ON
|
||||
INSERT INTO T_INTEZMENY (ID, C_AZONOSITO, C_FENNTARTOAZONOSITO, C_NEPTUNNAPLOLINK, TOROLT, SERIAL, LASTCHANGED, CREATED, MODIFIER, CREATOR, C_FENNTARTOID)
|
||||
SELECT ' + IIF(@pChangeIds = 1, '@newIntezmenyId','ID') + ', C_AZONOSITO, C_FENNTARTOAZONOSITO, C_NEPTUNNAPLOLINK, TOROLT, SERIAL, LASTCHANGED, CREATED, MODIFIER, CREATOR, C_FENNTARTOID
|
||||
FROM ' + @pSourceDatabase + '.dbo.T_INTEZMENY x
|
||||
WHERE ID = @intId
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
|
||||
SET IDENTITY_INSERT T_INTEZMENY OFF
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@newIntezmenyId int, @intId int, @rowCount int output', @newIntezmenyId, @pSourceIntezmenyId, @rowCount output
|
||||
SET @message = ' CP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_INTEZMENY - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
-- ============================================================== --
|
||||
-- A nem IDENTITY()-s táblák adatainak áttöltése --
|
||||
-- ============================================================== --
|
||||
/*
|
||||
SELECT
|
||||
@newIntezmenyId = t1.[newId]
|
||||
FROM MappingTable t1 WHERE t1.tableName = 'T_INTEZMENY'*/
|
||||
|
||||
DECLARE tbl_cur CURSOR LOCAL FOR
|
||||
SELECT DISTINCT TABLE_NAME, COLUMN_NAME--, COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), 'ID', 'IsIdentity')
|
||||
FROM INFORMATION_SCHEMA.COLUMNS c
|
||||
WHERE COLUMN_NAME = N'C_ALINTEZMENYID'
|
||||
AND TABLE_NAME IN (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA = 'dbo')
|
||||
AND TABLE_NAME NOT IN (N'T_ENTITYATTRIBUTEHISTORY', N'T_ENTITYHISTORY', N'T_DICTIONARYTYPE')
|
||||
AND TABLE_SCHEMA = 'dbo'
|
||||
AND COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), 'ID', 'IsIdentity') = 0
|
||||
|
||||
OPEN tbl_cur
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName, @intezmenyIdColumn
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
|
||||
--PRINT @tableName
|
||||
|
||||
SELECT @columnList = ISNULL(@columnList + ', ', '') + c.COLUMN_NAME
|
||||
FROM INFORMATION_SCHEMA.COLUMNS c
|
||||
WHERE c.TABLE_NAME = @tableName AND c.TABLE_SCHEMA = 'dbo' AND c.COLUMN_NAME NOT IN (N'ID', @intezmenyIdColumn)
|
||||
|
||||
SET @sql = N'
|
||||
INSERT INTO ' + @tableName + ' (ID, ' + @intezmenyIdColumn + ', ' + @columnList + ')
|
||||
SELECT ' + IIF(@pChangeIds = 1, 't.[newId], @newIntezmenyId', 'ID, ' + @intezmenyIdColumn) + ', ' + @columnList + '
|
||||
FROM ' + @pSourceDatabase + '.dbo.' + @tableName + ' x
|
||||
' + IIF(@pChangeIds = 1, 'INNER JOIN MappingTable t ON t.oldId = x.ID AND t.tableName = ''' + @tableName + '''', '') + '
|
||||
WHERE ' + @intezmenyIdColumn + ' = @intId
|
||||
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intId int, @newIntezmenyId int, @rowCount int output', @pSourceIntezmenyId, @newIntezmenyId, @rowCount output
|
||||
SET @message = ' CP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - ' + @tableName + ' - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @columnList = NULL
|
||||
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName, @intezmenyIdColumn
|
||||
END
|
||||
|
||||
CLOSE tbl_cur
|
||||
DEALLOCATE tbl_cur
|
||||
|
||||
-- ================================================================================ --
|
||||
-- Kapcsolótáblák migrálása, ezt külön kell, mert nincsen nekik C_INTEZMENYID-juk --
|
||||
-- ================================================================================ --
|
||||
DECLARE tbl_cur CURSOR LOCAL FOR
|
||||
SELECT TABLE_NAME
|
||||
FROM INFORMATION_SCHEMA.TABLES t
|
||||
WHERE t.TABLE_NAME NOT IN (
|
||||
SELECT TABLE_NAME
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE COLUMN_NAME = 'ID'
|
||||
)
|
||||
AND t.TABLE_TYPE = 'BASE TABLE'
|
||||
AND t.TABLE_NAME LIKE 'T[_]%'
|
||||
AND t.TABLE_SCHEMA = 'dbo'
|
||||
AND t.TABLE_NAME NOT IN ('T_EVFOLYAMTIPUS_OKTATASINEVELE', 'T_AMIFOTARGY_AMIALTARGY')
|
||||
|
||||
OPEN tbl_cur
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
SELECT TOP(1)
|
||||
@firstParentCol = pc.[name]-- AS parent_column_name
|
||||
,@firstRefObj = 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 parent_object_id = OBJECT_ID(@tableName)
|
||||
ORDER BY f.constraint_object_id ASC
|
||||
|
||||
SELECT TOP(1)
|
||||
@secondParentCol = pc.[name]-- AS parent_column_name
|
||||
,@secondRefObj = 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 parent_object_id = OBJECT_ID(@tableName)
|
||||
ORDER BY f.constraint_object_id DESC
|
||||
|
||||
SET @sql = N'
|
||||
INSERT INTO ' + @tableName + ' (' + @firstParentCol + ', ' + @secondParentCol + ')
|
||||
SELECT ' + IIF(@pChangeIds = 1, 'DISTINCT t1.[newId] AS ' + @firstParentCol + ', t2.[newId] AS ' + @secondParentCol, @firstParentCol + ', ' + @secondParentCol) + '
|
||||
FROM ' + @pSourceDatabase + '.dbo.' + @tableName + ' x
|
||||
' + IIF(@pChangeIds = 1, 'INNER JOIN MappingTable t1 ON t1.tableName = ''' + @firstRefObj + ''' AND ' + @firstParentCol + ' = t1.oldId', '') + '
|
||||
' + IIF(@pChangeIds = 1, 'INNER JOIN MappingTable t2 ON t2.tableName = ''' + @secondRefObj + ''' AND ' + @secondParentCol + ' = t2.oldId', '') + '
|
||||
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@rowCount int output', @rowCount output
|
||||
SET @message = ' CP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - ' + @tableName + ' - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName
|
||||
END
|
||||
|
||||
CLOSE tbl_cur
|
||||
DEALLOCATE tbl_cur
|
||||
|
||||
-- ============================================================== --
|
||||
-- A T_DICTIONARYITEMBASE altáblák miglálása (100k alatt) --
|
||||
-- ============================================================== --
|
||||
IF @pChangeIds = 1 BEGIN
|
||||
|
||||
DECLARE tbl_cur CURSOR LOCAL FOR
|
||||
SELECT OBJECT_NAME(parent_object_id)
|
||||
FROM sys.foreign_keys
|
||||
WHERE referenced_object_id = OBJECT_ID('T_DICTIONARYITEMBASE')
|
||||
|
||||
--SELECT @newIntezmenyId = t1.[newId] FROM MappingTable t1 WHERE t1.tableName = 'T_INTEZMENY'
|
||||
|
||||
OPEN tbl_cur
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
SELECT @columnList = ISNULL(@columnList + ', ', '') + c.COLUMN_NAME
|
||||
FROM INFORMATION_SCHEMA.COLUMNS c
|
||||
WHERE c.TABLE_NAME = @tableName AND c.TABLE_SCHEMA = 'dbo' AND c.COLUMN_NAME NOT IN (N'ID', N'C_ALINTEZMENYID')
|
||||
|
||||
SET @sql = N'
|
||||
INSERT INTO ' + @tableName + ' (ID, C_ALINTEZMENYID, ' + @columnList + ')
|
||||
SELECT ID, ' + IIF(@pChangeIds = 1, '@newIntezmenyId', 'C_ALINTEZMENYID') + ', ' + @columnList + '
|
||||
FROM ' + @pSourceDatabase + '.dbo.' + @tableName + ' x
|
||||
WHERE C_ALINTEZMENYID = @intId AND ID < 100000
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@intId int, @newIntezmenyId int, @rowCount int output', @pSourceIntezmenyId, @newIntezmenyId, @rowCount output
|
||||
SET @message = ' CP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - ' + @tableName + ' - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
SET @columnList = NULL
|
||||
FETCH NEXT FROM tbl_cur
|
||||
INTO @tableName
|
||||
END
|
||||
|
||||
CLOSE tbl_cur
|
||||
DEALLOCATE tbl_cur
|
||||
|
||||
-- ============================================================== --
|
||||
-- A T_DICTIONARYITEMBASE miglálása (100k alatt) --
|
||||
-- ============================================================== --
|
||||
SELECT @newIntezmenyId = t1.[newId]
|
||||
FROM MappingTable t1
|
||||
WHERE t1.tableName = 'T_INTEZMENY'
|
||||
|
||||
SET @sql = '
|
||||
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_TYPE, C_PROTECTED, C_INTEZMENYID, C_TANEVID, TOROLT, SERIAL, LASTCHANGED, CREATED, MODIFIER, CREATOR, C_ORDER, C_DICTIONARYTYPEID)
|
||||
SELECT ID, C_VALUE, C_NAME, C_NAME_1, C_NAME_2, C_NAME_3, C_NAME_4, C_VISIBLE, C_TYPE, C_PROTECTED, ' + IIF(@pChangeIds = 1, '@newIntezmenyId', 'C_ALINTEZMENYID') + ', C_TANEVID, TOROLT, SERIAL, LASTCHANGED, CREATED, MODIFIER, CREATOR, C_ORDER, C_DICTIONARYTYPEID
|
||||
FROM ' + @pSourceDatabase + '.dbo.T_DICTIONARYITEMBASE x
|
||||
WHERE C_INTEZMENYID = @pSourceIntezmenyId AND ID < 100000
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
|
||||
SET IDENTITY_INSERT T_DICTIONARYITEMBASE OFF
|
||||
|
||||
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@pSourceIntezmenyId int, @newIntezmenyId int, @rowCount int output', @pSourceIntezmenyId, @newIntezmenyId, @rowCount output
|
||||
SET @message = ' CP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_DICTIONARYITEMBASE - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
|
||||
END
|
||||
|
||||
-- ============================================================== --
|
||||
-- DICTIONARYTYPE külön kell áttölteni --
|
||||
-- ============================================================== --
|
||||
|
||||
SET @sql = N'
|
||||
SET IDENTITY_INSERT T_DICTIONARYTYPE ON
|
||||
INSERT INTO T_DICTIONARYTYPE (ID, C_CODENAME, C_DESCRIPTION, C_ISCOLOREDITABLE, C_ISCUSTOMITEMALLOWED, C_NAME, C_INTEZMENYID, C_TANEVID, TOROLT, SERIAL, LASTCHANGED, CREATED, MODIFIER, CREATOR, ELOZOTANEVIREKORDID, NNID)
|
||||
SELECT ID, C_CODENAME, C_DESCRIPTION, C_ISCOLOREDITABLE, C_ISCUSTOMITEMALLOWED, C_NAME, ' + IIF(@pChangeIds = 1, '@newIntezmenyId', 'C_INTEZMENYID') + ', C_TANEVID, TOROLT, SERIAL, LASTCHANGED, CREATED, MODIFIER, CREATOR, ELOZOTANEVIREKORDID, NNID
|
||||
FROM ' + @pSourceDatabase + '.dbo.T_DICTIONARYTYPE
|
||||
WHERE C_INTEZMENYID = @intId
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
SET IDENTITY_INSERT T_DICTIONARYTYPE OFF
|
||||
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
|
||||
EXEC sp_executesql @sql, N'@intId int, @newIntezmenyId int, @rowCount int output', @pSourceIntezmenyId, @newIntezmenyId, @rowCount output
|
||||
SET @message = ' CP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_DICTIONARYTYPE - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
-- ================================================================================ --
|
||||
-- T_EVFOLYAMTIPUS_OKTATASINEVELE táblát külön kell kezelni --
|
||||
-- ================================================================================ --
|
||||
SET @sql = '
|
||||
INSERT INTO T_EVFOLYAMTIPUS_OKTATASINEVELE (C_EVFOLYAMTIPUSID, C_OKTATASINEVELESIFELADATID, C_INTEZMENYID, C_TANEVID)
|
||||
SELECT ' + IIF(@pChangeIds = 1, 'ISNULL(eft.[newId], eo.C_EVFOLYAMTIPUSID), ISNULL(onf.[newId], eo.C_OKTATASINEVELESIFELADATID), @newIntezmenyId, t.[newId]', 'C_EVFOLYAMTIPUSID, C_OKTATASINEVELESIFELADATID, C_INTEZMENYID, C_TANEVID') + '
|
||||
FROM ' + @pSourceDatabase + '.dbo.T_EVFOLYAMTIPUS_OKTATASINEVELE eo
|
||||
' + IIF(@pChangeIds = 1, 'INNER JOIN MappingTable t ON eo.C_TANEVID = t.oldId AND t.tableName = ''T_TANEV''
|
||||
LEFT JOIN MappingTable onf ON eo.C_OKTATASINEVELESIFELADATID = onf.oldId AND onf.tableName = ''T_OKTATASINEVELESIFELADAT''
|
||||
LEFT JOIN MappingTable eft ON eo.C_EVFOLYAMTIPUSID = eft.oldId AND eft.tableName = ''T_EVFOLYAMTIPUS''', '') + '
|
||||
WHERE eo.C_INTEZMENYID = @pSourceIntezmenyId
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@pSourceIntezmenyId int, @newIntezmenyId int, @rowCount int output', @pSourceIntezmenyId, @newIntezmenyId, @rowCount output
|
||||
SET @message = ' CP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_EVFOLYAMTIPUS_OKTATASINEVELE - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
-- ================================================================================ --
|
||||
-- DASHBOARDUZENETEK áttöltése --
|
||||
-- ================================================================================ --
|
||||
IF @pChangeIds = 0 BEGIN
|
||||
SET @sql = N'
|
||||
INSERT INTO T_DASHBOARDUZENET (C_CIM, C_EGYEDIAZONOSITO, C_ERVENYESSEGKEZDETE, C_ERVENYESSEGVEGE, C_KIEMELTIDOSZAKVEGE, C_SORREND, C_TARTALOM, TOROLT, SERIAL, LASTCHANGED, CREATED, MODIFIER, CREATOR, ELOZOTANEVIREKORDID, NNID, C_DASHBOARDUZENETKATEGORIAID, C_ISPOPUP, C_POPUPGYAKORISAGAPERCBEN, C_ISADMIN, C_ISTANAR)
|
||||
SELECT C_CIM, C_EGYEDIAZONOSITO, C_ERVENYESSEGKEZDETE, C_ERVENYESSEGVEGE, C_KIEMELTIDOSZAKVEGE, C_SORREND, C_TARTALOM, TOROLT, SERIAL, LASTCHANGED, CREATED, MODIFIER, CREATOR, ELOZOTANEVIREKORDID, NNID, C_DASHBOARDUZENETKATEGORIAID, C_ISPOPUP, C_POPUPGYAKORISAGAPERCBEN, C_ISADMIN, C_ISTANAR
|
||||
FROM ' + @pSourceDatabase + '.dbo.T_DASHBOARDUZENET
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@rowCount int output', @rowCount output
|
||||
SET @message = ' CP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_DASHBOARDUZENET - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
END
|
||||
|
||||
-- ================================================================================ --
|
||||
-- Az ENTITY HISTORY áttöltése --
|
||||
-- ================================================================================ --
|
||||
IF @pEntityHistoryMigration = 1 BEGIN
|
||||
SET @sql = N'
|
||||
SET IDENTITY_INSERT T_ENTITYHISTORY ON
|
||||
INSERT INTO T_ENTITYHISTORY (ID, C_ALTERATIONDATE, C_ENTITYID, C_ENTITYNAME, C_REASON, C_FELHASZNALOID, C_INTEZMENYID, C_TANEVID, CREATED)
|
||||
SELECT ' + IIF(@pChangeIds = 1, 't.[newId]', 'ID') + ', x.C_ALTERATIONDATE, x.C_ENTITYID, x.C_ENTITYNAME, x.C_REASON, x.C_FELHASZNALOID, ' + IIF(@pChangeIds = 1, '@newIntezmenyId', 'C_INTEZMENYID') + ', x.C_TANEVID, x.CREATED
|
||||
FROM ' + @pSourceDatabase + '.dbo.T_ENTITYHISTORY x
|
||||
' + IIF(@pChangeIds = 1, 'INNER JOIN MappingTable t ON t.oldId = x.ID AND t.tableName = ''T_ENTITYHISTORY''', '') + '
|
||||
WHERE x.C_INTEZMENYID = @pSourceIntezmenyId
|
||||
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
SET IDENTITY_INSERT T_ENTITYHISTORY OFF
|
||||
|
||||
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@pSourceIntezmenyId int, @newIntezmenyId int, @rowCount int output', @pSourceIntezmenyId, @newIntezmenyId, @rowCount output
|
||||
SET @message = ' CP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_ENTITYHISTORY - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
|
||||
|
||||
SET @sql = N'
|
||||
' + IIF(@pChangeIds = 1, '', 'SET IDENTITY_INSERT T_ENTITYATTRIBUTEHISTORY ON') + '
|
||||
INSERT INTO T_ENTITYATTRIBUTEHISTORY (' + IIF(@pChangeIds = 1, '', 'ID, ') + 'C_CURRENTVALUE, C_ORIGINALVALUE, C_PROPERTYNAME, C_ENTITYHISTORYID)
|
||||
SELECT ' + IIF(@pChangeIds = 1, '', 'e.ID, ') + 'C_CURRENTVALUE, C_ORIGINALVALUE, C_PROPERTYNAME, ' + IIF(@pChangeIds = 1, 't.[newId]', 'C_ENTITYHISTORYID') + '
|
||||
FROM ' + @pSourceDatabase + '.dbo.T_ENTITYATTRIBUTEHISTORY e
|
||||
' + IIF(@pChangeIds = 1,
|
||||
'INNER JOIN MappingTable t ON e.C_ENTITYHISTORYID = t.oldId AND t.tableName = ''T_ENTITYHISTORY''',
|
||||
'INNER JOIN ' + @pSourceDatabase + '.dbo.T_ENTITYHISTORY x ON x.ID = e.C_ENTITYHISTORYID AND x.C_INTEZMENYID = @pSourceIntezmenyId') + ';
|
||||
SET @rowCount = @@ROWCOUNT
|
||||
' + IIF(@pChangeIds = 1, '', 'SET IDENTITY_INSERT T_ENTITYATTRIBUTEHISTORY OFF') + '
|
||||
|
||||
|
||||
'
|
||||
|
||||
IF @pDebugMode = 1 RAISERROR (@sql, 10, 1) WITH NOWAIT
|
||||
EXEC sp_executesql @sql, N'@pSourceIntezmenyId int, @newIntezmenyId int, @rowCount int output', @pSourceIntezmenyId, @newIntezmenyId, @rowCount output
|
||||
SET @message = ' CP ' + FORMAT(GETDATE(), 'HH:mm:ss.ff') + ' - T_ENTITYATTRIBUTEHISTORY - ' + CAST(@rowCount AS nvarchar(20)) + ' sor'
|
||||
RAISERROR (@message, 10, 1) WITH NOWAIT
|
||||
END
|
||||
|
||||
END
|
||||
GO
|
||||
|
Reference in New Issue
Block a user