Files
sql-scripts/BAG - push new data from proddb to cloud.sql

96 lines
5.9 KiB
PL/PgSQL
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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