SQL запросы - Пакетное копирование. Пакет на основе даты 

Page / - Изменено Alexandr Fokin в 2023/12/16 14:12 

Пакетное копирование. Пакет на основе даты 
Изменено Alexandr Fokin
в 2023/12/16 14:12

Оглавление

  
 -- Копируем актуальные данные (за последние 3 месяца)
DECLARE @dateStart datetime = DATEADD(MONTH, -3, GETDATE())
DECLARE @dateStop datetime = GETDATE()
DECLARE @weekStep int = 2

DECLARE @curStart datetime = @dateStart
DECLARE @curStop datetime = DATEADD(WEEK, @weekStep, @curStart)

WHILE (1=1)
BEGIN
INSERT INTO dbo.NewTable ([Id], [Data], [DateAdded])
SELECT [Id], [Data], [DateAdded] 
FROM [dbo].[OldTable]
WHERE 
[DateAdded] BETWEEN @curStart AND @curStop

SET @curStart = @curStop
SET @curStop = DATEADD(WEEK, @weekStep, @curStart)

IF (@curStart > @dateStop)
BEGIN
BREAK
END
END