USE [SL2007] /* This script will be used to syncronize the tables modified by the procedure [dbo].[usp_Daily_Batch_Update] and push those changes to the could version of the sl2007 database. We cannot use SQL replication as this db is already replicated from cloud to on-prem, and backup / restore comes with it's own complications The list of tables touched by the proc named above: - dbo.PARTNER_MUTATION - dbo.PARTNER - dbo.PACKPARTNER_MUTATION - dbo.ATCDESCR - dbo.PREPARATION_IGNORE - dbo.PACK_IGNORE - dbo.PACK_NEW - dbo.PREPARATION_NEW - dbo.PACK_MUTATION - dbo.PREPARATION_MUTATION - dbo.PREPARATION - dbo.PACK - dbo.SUBSTANCE - dbo.PREPSUB - dbo.PrepGenGroup ?? not certain, it's based on a temp table generated before - dbo.COM_CHAIN ?? table could be not present, seems to be a subset of pharmacode chaining in product_superset - dbo.ITDESCR */ --set here the date where modification made after should be taken in account DECLARE @cutoff DATETIME = DATEADD(DAY, -1, CURRENT_TIMESTAMP) --PARTNER_MUTATION BEGIN TRANSACTION SET XACT_ABORT ON; SET NOCOUNT ON; --#region partner_mutation IF OBJECT_ID('tempdb..#partner_mutation')IS NOT NULL BEGIN; DROP TABLE #partner_mutation; END; SELECT * INTO #partner_mutation FROM dbo.[PARTNER_MUTATION] s WHERE s.[DBINSDATIM] > @cutoff OR s.[DBUPDDATIM] > @cutoff UPDATE trg SET trg.PARTNERNO_EMEDIAT = src.PARTNERNO_EMEDIAT ,trg.COMPANYNAME_ORIGINAL = src.COMPANYNAME_ORIGINAL ,trg.ADDNAME_ORIGINAL = src.ADDNAME_ORIGINAL ,trg.COMPANYNAME = src.COMPANYNAME ,trg.ADDNAME = src.ADDNAME ,trg.DBSTATUS = src.DBSTATUS ,trg.DBUPDDATIM = src.DBUPDDATIM ,trg.DBUPDUSER = src.DBUPDUSER ,trg.TIME_STAMP = src.TIME_STAMP FROM bag_mi_sl2007.sl2007.dbo.partner_mutation trg JOIN #partner_mutation src ON trg.[PARTNERNO] = src.[PARTNERNO] ; PRINT CONVERT(VARCHAR(20), CURRENT_TIMESTAMP, 114)+' - Updated existing values in partner_mutation. '+REPLACE(REPLACE(CONVERT(VARCHAR(100), CONVERT(MONEY, @@rowcount), 1),',',''''),'.00','')+' row(s) affected.'; INSERT INTO bag_mi_sl2007.sl2007.dbo.partner_mutation( PARTNERNO , PARTNERNO_EMEDIAT , COMPANYNAME_ORIGINAL , COMPANYNAME , ADDNAME , DBSTATUS , DBINSDATIM , DBINSUSER , DBUPDDATIM , DBUPDUSER , TIME_STAMP ) SELECT src.[PARTNERNO] , src.[PARTNERNO_EMEDIAT] , src.[COMPANYNAME_ORIGINAL] , src.[COMPANYNAME] , src.[ADDNAME] , src.[DBSTATUS] , src.[DBINSDATIM] , src.[DBINSUSER] , src.[DBUPDDATIM] , src.[DBUPDUSER] , src.[TIME_STAMP] FROM #partner_mutation src; PRINT CONVERT(VARCHAR(20), CURRENT_TIMESTAMP, 114)+' - Inserted missing values in partner_mutation. '+REPLACE(REPLACE(CONVERT(VARCHAR(100), CONVERT(MONEY, @@rowcount), 1),',',''''),'.00','')+' row(s) affected.'; --#endregion partner_mutation ROLLBACK TRANSACTION