A "Delta" migration is necessary when you migrate some data now and some data later.


If you want to copy the Result_Ids for all tables, simply use the query below.
- DECLARE @PHASE1_DB NVARCHAR(MAX) = 'REPLACE_WITH_PHASE1_DATABASE_NAME'
DECLARE @PHASE2_DB NVARCHAR(MAX) = 'REPLACE_WITH_PHASE2_DATABASE_NAME'
DECLARE @SCRIPT_INNER NVARCHAR(MAX) = '
UPDATE
[PHASE2_DB].?
SET
Comment = Phase1.Comment,
Action_Group = Phase1.Action_Group,
Action_Priority = Phase1.Action_Priority,
Log_ReferenceCode = Phase1.Log_ReferenceCode,
Log_Description = Phase1.Log_Description,
Log_Date_From = Phase1.Log_Date_From,
Log_Date_Till = Phase1.Log_Date_Till,
Result_Id = Phase1.Result_Id,
Result_ReferenceCode = Phase1.Result_ReferenceCode,
Result_Content = Phase1.Result_Content,
Result_Content_Url = Phase1.Result_Content_Url,
Result_View_Url = Phase1.Result_View_Url
FROM
[PHASE1_DB].? Phase1,
[PHASE2_DB].? Phase2
WHERE 1=1
and Phase1.Id = Phase2.Id
and Phase2.Result_Id = ''''
'
SET @SCRIPT_INNER = REPLACE(@SCRIPT_INNER, '''', '''''')
DECLARE @SCRIPT NVARCHAR(MAX) = '
USE [PHASE1_DB]
DECLARE @SCRIPT NVARCHAR(MAX) = ''
[SCRIPT_INNER]
''
EXEC sp_MSforeachtable @SCRIPT
'
SET @SCRIPT = REPLACE(@SCRIPT, '[SCRIPT_INNER]', CONCAT('', @SCRIPT_INNER, ''))
SET @SCRIPT = REPLACE(@SCRIPT, '[PHASE1_DB]', CONCAT('[', @PHASE1_DB, ']'))
SET @SCRIPT = REPLACE(@SCRIPT, '[PHASE2_DB]', CONCAT('[', @PHASE2_DB, ']'))
EXEC sp_executesql @SCRIPT