Advertisement
Guest User

Untitled

a guest
Jun 21st, 2017
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.21 KB | None | 0 0
  1. -- Retrieve duplicate 'Heads' [first unique instance of a hash]
  2. -- IGNORE_DUP_KEY = ON
  3. DECLARE @Duplicates AS TABLE([Id] INT UNIQUE WITH(IGNORE_DUP_KEY = ON),[RootPid] INT,[DuplicatePid] INT,[Duplicates] BIT DEFAULT(0),[Hash] VARCHAR(50))
  4. INSERT INTO @Duplicates
  5.     SELECT [Id],[RootPid],[Id],1,[Hash]
  6.     FROM [dbo].[Inventory]
  7.     WHERE  [Id] IN
  8.         (
  9.             SELECT MIN([Id])
  10.             FROM [dbo].[Inventory]
  11.             WHERE [Hash] <> '' AND                  -- Exclude items w/no hash (never parent or dup)
  12.             ([Lvl]=0 OR([Lvl] =1 AND [FileCat]=1 )) -- Constrain to L1 or StoreLevel emails
  13.             GROUP BY [Hash] HAVING Count([Hash])>1
  14.         )
  15.  
  16. -- Expand subsequent instances of the hash [from <=L1]
  17. INSERT INTO @Duplicates
  18. SELECT i.[Id],i.[RootPid],d.[DuplicatePid],0,i.[Hash]
  19. FROM [Inventory] i INNER JOIN @Duplicates d
  20. ON i.[Hash] = d.[Hash]
  21. AND ([Lvl]=0 OR([Lvl] =1 AND [FileCat]=1 ))
  22.  
  23.  
  24. -- Incorporate attachments
  25. INSERT INTO @Duplicates
  26. SELECT i.[Id],i.[RootPid],d.[DuplicatePid],0,i.[Hash]
  27. FROM [Inventory] i INNER JOIN @Duplicates d ON i.[RootPid] = d.[Id]
  28.  
  29.  
  30. -- Incorporate attachments + Update
  31. UPDATE i
  32. SET i.[Duplicates] = d.[Duplicates], i.[DuplicatePid] = d.[DuplicatePid]
  33. FROM [Inventory] i INNER JOIN @Duplicates d ON i.[Id] = d.[Id]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement