sync
This commit is contained in:
341
DELPHIX - arizona schema changes.sql
Normal file
341
DELPHIX - arizona schema changes.sql
Normal file
@@ -0,0 +1,341 @@
|
|||||||
|
USE [HCITools];
|
||||||
|
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM sys.[schemas] s WHERE s.[name]='delphix')
|
||||||
|
BEGIN
|
||||||
|
EXEC('CREATE SCHEMA [delphix]');
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF OBJECT_ID('delphix.delphix_schema_changes') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
DROP PROCEDURE delphix.delphix_schema_changes;
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF OBJECT_ID('dbo.delphix_schema_changes') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
DROP PROCEDURE dbo.delphix_schema_changes;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
OC-945
|
||||||
|
|
||||||
|
This procedure is used by Delphix to alter the schema in the databases that must be masked.
|
||||||
|
It will add new columns to existing tables, that will be used by the masking engine.
|
||||||
|
|
||||||
|
The following fields are added:
|
||||||
|
int arizona.dbo.addresse
|
||||||
|
TT_
|
||||||
|
*/
|
||||||
|
CREATE PROCEDURE delphix.delphix_schema_changes
|
||||||
|
@removeSchemaChanges BIT = 0
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET XACT_ABORT ON;
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE @tblAlter TABLE(dbName VARCHAR(50) NOT NULL, queryAlterTxt NVARCHAR(MAX) NOT NULL, queryUpdateTxt NVARCHAR(MAX) NOT NULL);
|
||||||
|
|
||||||
|
IF @removeSchemaChanges = 1
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO @tblAlter ([dbName]
|
||||||
|
,[queryAlterTxt]
|
||||||
|
,[queryUpdateTxt])
|
||||||
|
VALUES(
|
||||||
|
'arizona'
|
||||||
|
,'
|
||||||
|
IF EXISTS(
|
||||||
|
SELECT 1
|
||||||
|
FROM [INFORMATION_SCHEMA].[COLUMNS] c
|
||||||
|
WHERE c.[TABLE_NAME]=''address''
|
||||||
|
AND c.[TABLE_SCHEMA]=''dbo''
|
||||||
|
AND c.[COLUMN_NAME]=''TT_masking''
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
ALTER TABLE dbo.[Address] DROP CONSTRAINT [DF_TT_masking];
|
||||||
|
ALTER TABLE dbo.[Address] DROP COLUMN [TT_masking];
|
||||||
|
END
|
||||||
|
'
|
||||||
|
,''
|
||||||
|
)
|
||||||
|
,(
|
||||||
|
'arizona_delphix'
|
||||||
|
,'
|
||||||
|
IF EXISTS(
|
||||||
|
SELECT 1
|
||||||
|
FROM [INFORMATION_SCHEMA].[COLUMNS] c
|
||||||
|
WHERE c.[TABLE_NAME]=''address''
|
||||||
|
AND c.[TABLE_SCHEMA]=''dbo''
|
||||||
|
AND c.[COLUMN_NAME]=''TT_masking''
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
ALTER TABLE dbo.[Address] DROP CONSTRAINT [DF_TT_masking];
|
||||||
|
ALTER TABLE dbo.[Address] DROP COLUMN [TT_masking];
|
||||||
|
END
|
||||||
|
'
|
||||||
|
,''
|
||||||
|
);
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO @tblAlter ([dbName]
|
||||||
|
,[queryAlterTxt]
|
||||||
|
,[queryUpdateTxt])
|
||||||
|
VALUES(
|
||||||
|
'arizona'
|
||||||
|
,'
|
||||||
|
IF NOT EXISTS(
|
||||||
|
SELECT 1
|
||||||
|
FROM [INFORMATION_SCHEMA].[COLUMNS] c
|
||||||
|
WHERE c.[TABLE_NAME]=''address''
|
||||||
|
AND c.[TABLE_SCHEMA]=''dbo''
|
||||||
|
AND c.[COLUMN_NAME]=''TT_masking''
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
ALTER TABLE dbo.[Address] ADD TT_masking VARCHAR(50) NOT NULL CONSTRAINT DF_TT_masking DEFAULT ''MASK'';
|
||||||
|
END
|
||||||
|
'
|
||||||
|
,'
|
||||||
|
--set everything to be masked
|
||||||
|
UPDATE ad
|
||||||
|
SET ad.TT_masking = ''MASK''
|
||||||
|
FROM Arizona.dbo.Address ad
|
||||||
|
WHERE ad.TT_masking <> ''MASK'';
|
||||||
|
|
||||||
|
--exclude from masking what we want to keep
|
||||||
|
UPDATE ad
|
||||||
|
SET ad.TT_masking = ''PERSIST''
|
||||||
|
FROM Arizona.dbo.Address ad
|
||||||
|
JOIN Arizona.dbo.Customer cst
|
||||||
|
ON [cst].[CUST_address] = [ad].[Address_ID]
|
||||||
|
LEFT JOIN Arizona.dbo.[Subsidiary] sub
|
||||||
|
ON [cst].[CUST_subsidiary] = [sub].[Subsidiary_ID]
|
||||||
|
WHERE [sub].[Subsidiary_ID] IS NOT NULL
|
||||||
|
AND ( [ad].[AD_last_name] LIKE ''TEST %''
|
||||||
|
OR [ad].[AD_name] LIKE ''TEST %''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Assura%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''PRESCRIPTION%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''RETETE%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''USER%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''ONBOARD%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''SUSPICIOUS%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''DOE''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''GIALLO%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''TOLKIEN%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''DEMO %''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''DOCUMEDIS%''
|
||||||
|
OR [ad].[AD_last_name] = ''DEMO''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''OMNICHANNEL%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''LASTNAME%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''MeiXin%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''DIPLOMATE%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''NO %''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''ONLY%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''RDL%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''USER%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''GALEXIS%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''APOS%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''APOSANDMAGENTO%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Activate''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Sunstore''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Coopvitality''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Ama Plus Sun''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Ama Plus Cvi''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Sun Plus Cvi''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Ama Sun Cvi''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''test%[0-9]%''
|
||||||
|
OR [ad].[AD_first_name] LIKE ''test%[0-9]%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%SUNCLUB%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%QUALITY%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%STARCARD%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%CLIENT%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%MAGENTO%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%RENOUVELLEMENT%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%Mitarbeiter%''
|
||||||
|
OR [ad].[AD_name] LIKE ''% DEV %''
|
||||||
|
OR [ad].[AD_name] LIKE ''CERN Service%''
|
||||||
|
OR [ad].[AD_name] LIKE ''BALEXERT CENTRE%''
|
||||||
|
OR [ad].[AD_name] LIKE ''G.H.O.L.%''
|
||||||
|
OR [ad].[AD_first_name] LIKE ''Test %''
|
||||||
|
OR [ad].[AD_first_name] = ''Test''
|
||||||
|
OR [ad].[AD_first_name] LIKE ''ONLYAPOS%''
|
||||||
|
OR [ad].[AD_first_name] LIKE ''In APOS%''
|
||||||
|
OR [ad].[AD_last_name] = ''DEMO''
|
||||||
|
OR (
|
||||||
|
[ad].[Address_ID] < 1500000000
|
||||||
|
AND NOT EXISTS (SELECT 3 FROM [dbo].[Employee] WHERE EM_address = ad.Address_ID)
|
||||||
|
AND NOT EXISTS (SELECT 3 FROM [dbo].[Customer] WHERE CUST_address = ad.Address_ID)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
AND [ad].[TT_masking] <> ''PERSIST''
|
||||||
|
|
||||||
|
UPDATE ad
|
||||||
|
SET [ad].[TT_masking] = ''PERSIST''
|
||||||
|
FROM Arizona.dbo.PH_prescriber ph
|
||||||
|
INNER JOIN Arizona.dbo.Address ad
|
||||||
|
ON [ad].[Address_ID] = [ph].[PHPR_address]
|
||||||
|
WHERE [ph].[PHPR_deactivation_date] IS NULL
|
||||||
|
AND [ad].[TT_masking] <> ''PERSIST'';
|
||||||
|
'
|
||||||
|
)
|
||||||
|
,(
|
||||||
|
'arizona_delphix'
|
||||||
|
,'
|
||||||
|
IF NOT EXISTS(
|
||||||
|
SELECT 1
|
||||||
|
FROM [INFORMATION_SCHEMA].[COLUMNS] c
|
||||||
|
WHERE c.[TABLE_NAME]=''address''
|
||||||
|
AND c.[TABLE_SCHEMA]=''dbo''
|
||||||
|
AND c.[COLUMN_NAME]=''TT_masking''
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
ALTER TABLE dbo.[Address] ADD TT_masking VARCHAR(50) NOT NULL CONSTRAINT DF_TT_masking DEFAULT ''MASK'';
|
||||||
|
END
|
||||||
|
'
|
||||||
|
,'
|
||||||
|
--set everything to be masked
|
||||||
|
UPDATE ad
|
||||||
|
SET ad.TT_masking = ''MASK''
|
||||||
|
FROM Arizona.dbo.Address ad
|
||||||
|
WHERE ad.TT_masking <> ''MASK'';
|
||||||
|
|
||||||
|
--exclude from masking what we want to keep
|
||||||
|
UPDATE ad
|
||||||
|
SET ad.TT_masking = ''PERSIST''
|
||||||
|
FROM Arizona.dbo.Address ad
|
||||||
|
JOIN Arizona.dbo.Customer cst
|
||||||
|
ON [cst].[CUST_address] = [ad].[Address_ID]
|
||||||
|
LEFT JOIN Arizona.dbo.[Subsidiary] sub
|
||||||
|
ON [cst].[CUST_subsidiary] = [sub].[Subsidiary_ID]
|
||||||
|
WHERE [sub].[Subsidiary_ID] IS NOT NULL
|
||||||
|
AND ( [ad].[AD_last_name] LIKE ''TEST %''
|
||||||
|
OR [ad].[AD_name] LIKE ''TEST %''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Assura%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''PRESCRIPTION%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''RETETE%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''USER%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''ONBOARD%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''SUSPICIOUS%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''DOE''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''GIALLO%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''TOLKIEN%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''DEMO %''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''DOCUMEDIS%''
|
||||||
|
OR [ad].[AD_last_name] = ''DEMO''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''OMNICHANNEL%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''LASTNAME%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''MeiXin%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''DIPLOMATE%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''NO %''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''ONLY%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''RDL%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''USER%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''GALEXIS%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''APOS%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''APOSANDMAGENTO%''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Activate''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Sunstore''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Coopvitality''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Ama Plus Sun''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Ama Plus Cvi''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Sun Plus Cvi''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''Ama Sun Cvi''
|
||||||
|
OR [ad].[AD_last_name] LIKE ''test%[0-9]%''
|
||||||
|
OR [ad].[AD_first_name] LIKE ''test%[0-9]%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%SUNCLUB%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%QUALITY%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%STARCARD%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%CLIENT%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%MAGENTO%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%RENOUVELLEMENT%''
|
||||||
|
OR [ad].[AD_name] LIKE ''%Mitarbeiter%''
|
||||||
|
OR [ad].[AD_name] LIKE ''% DEV %''
|
||||||
|
OR [ad].[AD_name] LIKE ''CERN Service%''
|
||||||
|
OR [ad].[AD_name] LIKE ''BALEXERT CENTRE%''
|
||||||
|
OR [ad].[AD_name] LIKE ''G.H.O.L.%''
|
||||||
|
OR [ad].[AD_first_name] LIKE ''Test %''
|
||||||
|
OR [ad].[AD_first_name] = ''Test''
|
||||||
|
OR [ad].[AD_first_name] LIKE ''ONLYAPOS%''
|
||||||
|
OR [ad].[AD_first_name] LIKE ''In APOS%''
|
||||||
|
OR [ad].[AD_last_name] = ''DEMO''
|
||||||
|
OR (
|
||||||
|
[ad].[Address_ID] < 1500000000
|
||||||
|
AND NOT EXISTS (SELECT 3 FROM [dbo].[Employee] WHERE EM_address = ad.Address_ID)
|
||||||
|
AND NOT EXISTS (SELECT 3 FROM [dbo].[Customer] WHERE CUST_address = ad.Address_ID)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
AND [ad].[TT_masking] <> ''PERSIST''
|
||||||
|
|
||||||
|
UPDATE ad
|
||||||
|
SET [ad].[TT_masking] = ''PERSIST''
|
||||||
|
FROM Arizona.dbo.PH_prescriber ph
|
||||||
|
INNER JOIN Arizona.dbo.Address ad
|
||||||
|
ON [ad].[Address_ID] = [ph].[PHPR_address]
|
||||||
|
WHERE [ph].[PHPR_deactivation_date] IS NULL
|
||||||
|
AND [ad].[TT_masking] <> ''PERSIST'';
|
||||||
|
'
|
||||||
|
);
|
||||||
|
END
|
||||||
|
|
||||||
|
/* declare variables */
|
||||||
|
DECLARE @dbName VARCHAR(50), @queryAlterTxt NVARCHAR(MAX), @queryUpdateTxt NVARCHAR(MAX), @queryComplete NVARCHAR(MAX);
|
||||||
|
|
||||||
|
DECLARE csrAlter CURSOR FAST_FORWARD READ_ONLY FOR
|
||||||
|
SELECT [dbName],
|
||||||
|
[queryAlterTxt],
|
||||||
|
[queryUpdateTxt]
|
||||||
|
FROM @tblAlter s
|
||||||
|
WHERE EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM sys.databases d
|
||||||
|
WHERE d.[name] = s.[dbName]
|
||||||
|
)
|
||||||
|
|
||||||
|
OPEN csrAlter
|
||||||
|
|
||||||
|
FETCH NEXT FROM csrAlter INTO @dbName, @queryAlterTxt, @queryUpdateTxt
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
SET @queryComplete='USE '+@dbName+';'+CHAR(13)+CHAR(10)+@queryAlterTxt;
|
||||||
|
--PRINT @queryComplete;
|
||||||
|
EXEC(@queryComplete);
|
||||||
|
|
||||||
|
--PRINT REPLICATE('-', 48);
|
||||||
|
|
||||||
|
SET @queryComplete='USE '+@dbName+';'+CHAR(13)+CHAR(10)+@queryUpdateTxt;
|
||||||
|
--PRINT @queryComplete;
|
||||||
|
EXEC(@queryComplete);
|
||||||
|
|
||||||
|
FETCH NEXT FROM csrAlter INTO @dbName, @queryAlterTxt, @queryUpdateTxt
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE csrAlter
|
||||||
|
DEALLOCATE csrAlter
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
BEGIN TRANSACTION
|
||||||
|
EXEC delphix.[delphix_schema_changes] @removeSchemaChanges = 0
|
||||||
|
|
||||||
|
EXEC('
|
||||||
|
SELECT COUNT(1) AS cnt, TT_masking
|
||||||
|
FROM arizona.dbo.[Address]
|
||||||
|
GROUP BY TT_masking
|
||||||
|
')
|
||||||
|
|
||||||
|
IF EXISTS(SELECT 1 FROM sys.[databases] WHERE name ='arizona_delphix')
|
||||||
|
EXEC('
|
||||||
|
SELECT COUNT(1) AS cnt, TT_masking
|
||||||
|
FROM arizona_delphix.dbo.[Address]
|
||||||
|
GROUP BY TT_masking
|
||||||
|
')
|
||||||
|
|
||||||
|
EXEC delphix.[delphix_schema_changes] @removeSchemaChanges = 1
|
||||||
|
SELECT TOP 10 * FROM [Arizona].[dbo].[Address];
|
||||||
|
|
||||||
|
|
||||||
|
ROLLBACK TRANSACTION
|
||||||
|
--COMMIT TRANSACTION
|
||||||
272
DELPHIX - clean schemas.sql
Normal file
272
DELPHIX - clean schemas.sql
Normal file
@@ -0,0 +1,272 @@
|
|||||||
|
USE HCITools
|
||||||
|
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM sys.[schemas] s WHERE s.[name]='delphix')
|
||||||
|
BEGIN
|
||||||
|
EXEC('CREATE SCHEMA [delphix]');
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF OBJECT_ID('delphix.arizonaCust_cleanup') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
DROP PROCEDURE delphix.arizonaCust_cleanup;
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*
|
||||||
|
OC-945
|
||||||
|
|
||||||
|
This procedure is used by Delphix to delete every data in arizonaCust.
|
||||||
|
As the schema is not unified through all the pharmacies, Delphix cannot be used.
|
||||||
|
|
||||||
|
We have received a confirmation from Gilles Balanche on the 15 of Mai 2024 that
|
||||||
|
arizonaCust in N+1 and N+2 env are not used, and that data can be deleted.
|
||||||
|
*/
|
||||||
|
CREATE PROCEDURE delphix.arizonaCust_cleanup
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
--deletion of data in arizonaCust
|
||||||
|
IF EXISTS(
|
||||||
|
SELECT 1
|
||||||
|
FROM [master].[cfg].[InstanceContext] c
|
||||||
|
WHERE (
|
||||||
|
[type] = 'VALI' --N+1
|
||||||
|
OR [type] = 'DEVE' --N+2
|
||||||
|
)
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
DECLARE @tbl_name VARCHAR(111), @schema_name VARCHAR(11);
|
||||||
|
DECLARE @tplTruncate VARCHAR(MAX), @query VARCHAR(MAX);
|
||||||
|
SET @tplTruncate='
|
||||||
|
BEGIN TRY
|
||||||
|
TRUNCATE TABLE [arizonaCust].[@schema@].[@tbl@];
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
DELETE FROM [arizonaCust].[@schema@].[@tbl@];
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
';
|
||||||
|
|
||||||
|
DECLARE csr_tbl CURSOR FAST_FORWARD READ_ONLY FOR
|
||||||
|
SELECT [d].[name], s.[name] as [schema_name]
|
||||||
|
FROM [ArizonaCUST].[sys].[tables] d
|
||||||
|
INNER JOIN [ArizonaCUST].[sys].[schemas] s on s.[schema_id] = d.[schema_id]
|
||||||
|
|
||||||
|
OPEN csr_tbl
|
||||||
|
|
||||||
|
FETCH NEXT FROM csr_tbl INTO @tbl_name, @schema_name
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
SET @query = REPLACE(
|
||||||
|
REPLACE(
|
||||||
|
@tplTruncate
|
||||||
|
,'@schema@'
|
||||||
|
,@schema_name
|
||||||
|
)
|
||||||
|
,'@tbl@'
|
||||||
|
,@tbl_name
|
||||||
|
);
|
||||||
|
|
||||||
|
PRINT @query;
|
||||||
|
EXEC(@query);
|
||||||
|
|
||||||
|
FETCH NEXT FROM csr_tbl INTO @tbl_name, @schema_name
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE csr_tbl
|
||||||
|
DEALLOCATE csr_tbl
|
||||||
|
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
go
|
||||||
|
|
||||||
|
IF OBJECT_ID('delphix.hciTool_cleanup') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
DROP PROCEDURE delphix.hciTool_cleanup;
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*
|
||||||
|
OC-945
|
||||||
|
|
||||||
|
This procedure is used by Delphix to delete every data in the TMP schema of hciTools.
|
||||||
|
As the schema is not unified through all the pharmacies, Delphix cannot be used.
|
||||||
|
*/
|
||||||
|
CREATE PROCEDURE delphix.hciTool_cleanup
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @tbl_name VARCHAR(111), @schema_name VARCHAR(11);
|
||||||
|
DECLARE @tplTruncate VARCHAR(MAX), @query VARCHAR(MAX);
|
||||||
|
SET @tplTruncate='
|
||||||
|
BEGIN TRY
|
||||||
|
TRUNCATE TABLE [hciTools].[@schema@].[@tbl@];
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
DELETE FROM [hciTools].[@schema@].[@tbl@];
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
';
|
||||||
|
|
||||||
|
DECLARE csr_tbl CURSOR FAST_FORWARD READ_ONLY FOR
|
||||||
|
SELECT [d].[name], s.[name] as [schema_name]
|
||||||
|
FROM [HCITools].[sys].[tables] d
|
||||||
|
INNER JOIN [HCITools].[sys].[schemas] s on s.[schema_id] = d.[schema_id]
|
||||||
|
WHERE schema_name(d.schema_id)='TMP'
|
||||||
|
|
||||||
|
OPEN csr_tbl
|
||||||
|
|
||||||
|
FETCH NEXT FROM csr_tbl INTO @tbl_name, @schema_name
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
SET @query = REPLACE(
|
||||||
|
REPLACE(
|
||||||
|
@tplTruncate
|
||||||
|
,'@schema@'
|
||||||
|
,@schema_name
|
||||||
|
)
|
||||||
|
,'@tbl@'
|
||||||
|
,@tbl_name
|
||||||
|
);
|
||||||
|
|
||||||
|
PRINT @query;
|
||||||
|
EXEC(@query);
|
||||||
|
|
||||||
|
FETCH NEXT FROM csr_tbl INTO @tbl_name, @schema_name
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE csr_tbl
|
||||||
|
DEALLOCATE csr_tbl
|
||||||
|
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF OBJECT_ID('delphix.arizonaLD_cleanup') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
DROP PROCEDURE delphix.arizonaLD_cleanup;
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*
|
||||||
|
OC-945
|
||||||
|
|
||||||
|
This procedure is used by Delphix to delete every data in arizonaLD database.
|
||||||
|
As the schema is not unified through all the pharmacies, Delphix cannot be used.
|
||||||
|
*/
|
||||||
|
CREATE PROCEDURE delphix.arizonaLD_cleanup
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @tbl_name VARCHAR(111), @schema_name VARCHAR(11);
|
||||||
|
DECLARE @tplTruncate VARCHAR(MAX), @query VARCHAR(MAX);
|
||||||
|
SET @tplTruncate='
|
||||||
|
BEGIN TRY
|
||||||
|
TRUNCATE TABLE [arizonaLD].[@schema@].[@tbl@];
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
DELETE FROM [arizonaLD].[@schema@].[@tbl@];
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
';
|
||||||
|
|
||||||
|
DECLARE csr_tbl CURSOR FAST_FORWARD READ_ONLY FOR
|
||||||
|
SELECT [d].[name], s.[name] as [schema_name]
|
||||||
|
FROM [arizonaLD].[sys].[tables] d
|
||||||
|
INNER JOIN [arizonaLD].[sys].[schemas] s on s.[schema_id] = d.[schema_id]
|
||||||
|
|
||||||
|
OPEN csr_tbl
|
||||||
|
|
||||||
|
FETCH NEXT FROM csr_tbl INTO @tbl_name, @schema_name
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
SET @query = REPLACE(
|
||||||
|
REPLACE(
|
||||||
|
@tplTruncate
|
||||||
|
,'@schema@'
|
||||||
|
,@schema_name
|
||||||
|
)
|
||||||
|
,'@tbl@'
|
||||||
|
,@tbl_name
|
||||||
|
);
|
||||||
|
|
||||||
|
PRINT @query;
|
||||||
|
EXEC(@query);
|
||||||
|
|
||||||
|
FETCH NEXT FROM csr_tbl INTO @tbl_name, @schema_name
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE csr_tbl
|
||||||
|
DEALLOCATE csr_tbl
|
||||||
|
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF OBJECT_ID('delphix.arizona_cleanup') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
DROP PROCEDURE delphix.arizona_cleanup;
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*
|
||||||
|
OC-945
|
||||||
|
|
||||||
|
This procedure is used by Delphix to delete content of tables named TT% or ZZ% in the arizona database.
|
||||||
|
As the schema is not unified through all the pharmacies, Delphix cannot be used.
|
||||||
|
*/
|
||||||
|
CREATE PROCEDURE delphix.arizona_cleanup
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @tbl_name VARCHAR(111), @schema_name VARCHAR(11);
|
||||||
|
DECLARE @tplTruncate VARCHAR(MAX), @query VARCHAR(MAX);
|
||||||
|
SET @tplTruncate='
|
||||||
|
BEGIN TRY
|
||||||
|
TRUNCATE TABLE [arizona].[@schema@].[@tbl@];
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
DELETE FROM [arizona].[@schema@].[@tbl@];
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
';
|
||||||
|
|
||||||
|
DECLARE csr_tbl CURSOR FAST_FORWARD READ_ONLY FOR
|
||||||
|
SELECT [d].[name], s.[name] as [schema_name]
|
||||||
|
FROM [arizona].[sys].[tables] d
|
||||||
|
INNER JOIN [Arizona].[sys].[schemas] s on s.[schema_id] = d.[schema_id]
|
||||||
|
WHERE [d].[name] LIKE 'TT[_]%'
|
||||||
|
OR [d].[name] LIKE 'ZZ[_]%'
|
||||||
|
|
||||||
|
OPEN csr_tbl
|
||||||
|
|
||||||
|
FETCH NEXT FROM csr_tbl INTO @tbl_name, @schema_name
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
SET @query = REPLACE(
|
||||||
|
REPLACE(
|
||||||
|
@tplTruncate
|
||||||
|
,'@schema@'
|
||||||
|
,@schema_name
|
||||||
|
)
|
||||||
|
,'@tbl@'
|
||||||
|
,@tbl_name
|
||||||
|
);
|
||||||
|
|
||||||
|
PRINT @query;
|
||||||
|
EXEC(@query);
|
||||||
|
|
||||||
|
FETCH NEXT FROM csr_tbl INTO @tbl_name, @schema_name
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE csr_tbl
|
||||||
|
DEALLOCATE csr_tbl
|
||||||
|
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
begin transaction
|
||||||
|
exec hcitools.delphix.arizonaCust_cleanup;
|
||||||
|
exec hcitools.delphix.hciTool_cleanup;
|
||||||
|
exec hcitools.delphix.arizonaLD_cleanup;
|
||||||
|
exec hcitools.delphix.arizona_cleanup;
|
||||||
|
rollback transaction
|
||||||
1974
DELPHIX - filter list of tables to identify.sql
Normal file
1974
DELPHIX - filter list of tables to identify.sql
Normal file
File diff suppressed because it is too large
Load Diff
@@ -52,6 +52,7 @@ INSERT INTO @users ([login],
|
|||||||
[name])
|
[name])
|
||||||
VALUES ('CENTRALINFRA\ua253440', 'Oliver'),
|
VALUES ('CENTRALINFRA\ua253440', 'Oliver'),
|
||||||
('CENTRALINFRA\ua253450', 'Franck'),
|
('CENTRALINFRA\ua253450', 'Franck'),
|
||||||
|
('CENTRALINFRA\ua193890','Muhamed'),
|
||||||
('CENTRALINFRA\ua210510', 'Wyn');
|
('CENTRALINFRA\ua210510', 'Wyn');
|
||||||
|
|
||||||
--#region create logins
|
--#region create logins
|
||||||
|
|||||||
67
DELPHIX - manage change tracking.sql
Normal file
67
DELPHIX - manage change tracking.sql
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
USE HCITools
|
||||||
|
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM sys.[schemas] s WHERE s.[name]='delphix')
|
||||||
|
BEGIN
|
||||||
|
EXEC('CREATE SCHEMA [delphix]');
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF OBJECT_ID('delphix.change_tracking_mgmt') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
DROP PROCEDURE delphix.change_tracking_mgmt;
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*
|
||||||
|
TPDT-535
|
||||||
|
|
||||||
|
This procedure is used by Delphix to disable change tracking on every tables of a given db and schema
|
||||||
|
|
||||||
|
This is a wrapper around [hciTools].[dbo].[DBA_Change_Tracking_Maintenance] that refuses to enable maintenance mode on all tables directly.
|
||||||
|
*/
|
||||||
|
CREATE PROCEDURE delphix.change_tracking_mgmt
|
||||||
|
@schema_name VARCHAR(100) = 'dbo'
|
||||||
|
,@maintenance_enabled BIT = 1
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
DECLARE @database_name VARCHAR(100) = 'Arizona';
|
||||||
|
DECLARE @sqlQuery VARCHAR(MAX)='';
|
||||||
|
DECLARE @tplGetTables VARCHAR(MAX) ='
|
||||||
|
INSERT INTO #tblList([database], [schema_name], [table_name])
|
||||||
|
SELECT ''@db@'' as Database_name, s.name AS Schema_name, t.name AS Table_name
|
||||||
|
FROM @db@.sys.change_tracking_tables ctt
|
||||||
|
JOIN @db@.sys.tables t
|
||||||
|
ON t.object_id = ctt.object_id
|
||||||
|
JOIN @db@.sys.schemas s
|
||||||
|
ON s.schema_id = t.schema_id
|
||||||
|
WHERE s.name = ''@schema@''
|
||||||
|
ORDER BY s.name, t.name;
|
||||||
|
';
|
||||||
|
|
||||||
|
--fetch a list of tables with change tracking in the specified db and schema
|
||||||
|
IF OBJECT_ID('tempdb..#tblList')IS NOT NULL BEGIN;
|
||||||
|
DROP TABLE #tblList;
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TABLE #tblList (
|
||||||
|
[database] VARCHAR(100) NOT NULL
|
||||||
|
,[schema_name] VARCHAR(100) NOT NULL
|
||||||
|
,[table_name] VARCHAR(100) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT @sqlQuery = REPLACE(REPLACE(@tplGetTables, '@db@', @database_name), '@schema@', @schema_name);
|
||||||
|
PRINT @sqlQuery;
|
||||||
|
EXEC(@sqlQuery);
|
||||||
|
|
||||||
|
SET @sqlQuery = '';
|
||||||
|
|
||||||
|
SELECT @sqlQuery = @sqlQuery +'EXEC [arizona].[dbo].[DBA_Change_Tracking_Maintenance] @in_tableName = N'''+l.[table_name]+''', @in_maintMode = '+CAST(@maintenance_enabled AS CHAR(1))+';'+CHAR(13)+CHAR(10)
|
||||||
|
FROM [#tblList] l
|
||||||
|
|
||||||
|
PRINT @sqlQuery;
|
||||||
|
EXEC(@sqlQuery);
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC [HCITools].[delphix].[change_tracking_mgmt] @schema_name = 'wkl', @maintenance_enabled = 0;
|
||||||
Reference in New Issue
Block a user