96 lines
5.9 KiB
PL/PgSQL
96 lines
5.9 KiB
PL/PgSQL
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
|