Guest User

Untitled

a guest
Oct 8th, 2025
21
0
29 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.02 KB | None | 0 0
  1. -- Init empty temp table with same column/type/precisions as target table
  2. SELECT      TOP 0 *
  3. INTO        #TempTable
  4. FROM        [LinkedServer].[TargetDatabase].[dbo].[TargetTable] WITH (READUNCOMMITTED);
  5.  
  6. -- Calculate current day data set and insert into temp table
  7. WITH [AggregatedData] AS (
  8.     -- Not important, just know we're joining/grouping/summing some values here
  9. )
  10. INSERT INTO #TempTable
  11.             ([Date]         -- DATE
  12.             ,[StoreId]      -- INT
  13.             ,[ItemId]       -- VARCHAR(20)
  14.             ,[UnitId]       -- VARCHAR(10)
  15.             ,[Price]        -- DECIMAL(38, 20)
  16.             ,[Quantity])    -- DECIMAL(38, 20)
  17. SELECT      [Date]
  18.             ,[StoreId]
  19.             ,[ItemId]
  20.             ,[UnitId]
  21.             ,[Price]
  22.             ,[Quantity]
  23. FROM        [AggregatedData] WITH (READUNCOMMITTED)
  24. WHERE       [Date] = @CurrentDate;
  25.  
  26. -- Delete records from target table that don't exist in our temp data set
  27. DELETE      tgt
  28. FROM        [LinkedServer].[TargetDatabase].[dbo].[TargetTable] tgt WITH (READUNCOMMITTED)
  29. WHERE       tgt.[Date] = @CurrentDate
  30.             AND NOT EXISTS(
  31.                 SELECT  1
  32.                 FROM    #TempTable src WITH (READUNCOMMITTED)
  33.                 WHERE   src.[Date] = tgt.[Date]
  34.                         AND src.[StoreId] = tgt.[StoreId]
  35.                         AND src.[ItemId] = tgt.[ItemId]
  36.                         AND src.[UnitId] = tgt.[UnitId]
  37.                         AND src.[Price] = tgt.[Price]
  38.                         AND src.[Quantity] = tgt.[Quantity]);
  39.  
  40. -- Insert records from temp table to target table that don't already exist there
  41. INSERT INTO [LinkedServer].[TargetDatabase].[dbo].[TargetTable]
  42.             ([Date]
  43.             ,[StoreId]
  44.             ,[ItemId]
  45.             ,[UnitId]
  46.             ,[Price]
  47.             ,[Quantity])
  48. SELECT      [Date]
  49.             ,[StoreId]
  50.             ,[ItemId]
  51.             ,[UnitId]
  52.             ,[Price]
  53.             ,[Quantity]
  54. FROM        #TempTable src WITH (READUNCOMMITTED)
  55. WHERE       NOT EXISTS(
  56.                 SELECT  1
  57.                 FROM    [LinkedServer].[TargetDatabase].[dbo].[TargetTable] tgt WITH (READUNCOMMITTED)
  58.                 WHERE   src.[Date] = tgt.[Date]
  59.                         AND src.[StoreId] = tgt.[StoreId]
  60.                         AND src.[ItemId] = tgt.[ItemId]
  61.                         AND src.[UnitId] = tgt.[UnitId]
  62.                         AND src.[Price] = tgt.[Price]
  63.                         AND src.[Quantity] = tgt.[Quantity]);
  64.  
  65. -- Cleanup
  66. IF OBJECT_ID('tempdb..#TempTable') IS NOT NULL DROP TABLE #TempTable
Advertisement
Add Comment
Please, Sign In to add comment