· 4 years ago · Aug 18, 2021, 12:52 PM
1-- EUNip (start)
2-- Uwaga: skrypt dla małego wolumenu danych
3--
4SET NOCOUNT ON;
5PRINT 'Anonimizacja EuNip...'
6
7DROP TABLE IF EXISTS [NKSPO.Billing].dbo._Map_EuNip;
8CREATE TABLE [NKSPO.Billing].dbo._Map_EuNip( Org NVARCHAR(15) NOT NULL, New NVARCHAR(15) NOT NULL);
9CREATE INDEX UX__Map_EuNip__Org ON [NKSPO.Billing].dbo._Map_EuNip( Org ) ;
10CREATE INDEX UX__Map_EuNip__New ON [NKSPO.Billing].dbo._Map_EuNip( New ) ;
11
12INSERT INTO [NKSPO.Billing].dbo._Map_EuNip( Org, New )
13SELECT DISTINCT
14 d.item AS Org ,
15 'AA' + SUBSTRING(CAST(CAST(RAND(CHECKSUM(NEWID()))* 10000000000000 AS BIGINT) AS VARCHAR(MAX)), 1, 13) AS New
16FROM
17(
18 SELECT DISTINCT d1.item
19 FROM
20 (
21 SELECT DISTINCT p.EuNip AS item FROM [NKSPO.EETS].dbo.Provider p WITH (NOLOCK) WHERE p.EuNip IS NOT NULL
22 UNION SELECT DISTINCT p.EuNip AS item FROM [NKSPO.EETS].dbo.ProviderHistory p WITH (NOLOCK) WHERE p.EuNip IS NOT NULL
23 ) d1
24) d;
25
26UPDATE [NKSPO.EETS].dbo.Provider
27SET EuNip = m.New
28FROM [NKSPO.EETS].dbo.Provider p WITH (NOLOCK)
29JOIN [NKSPO.Billing].dbo._Map_EuNip m WITH (NOLOCK) ON m.Org = p.EuNip;
30
31UPDATE [NKSPO.EETS].dbo.ProviderHistory
32SET EuNip = m.New
33FROM [NKSPO.EETS].dbo.ProviderHistory p WITH (NOLOCK)
34JOIN [NKSPO.Billing].dbo._Map_EuNip m WITH (NOLOCK) ON m.Org = p.EuNip;
35
36DROP TABLE IF EXISTS [NKSPO.Billing].dbo._Map_EuNip;
37PRINT 'Koniec.';
38--
39-- EuNip (end)
40