Удаляем батчами по 100 000 строк чтобы не раздуть лог транзакций

USE Viatec_UT_mamch;
DECLARE @BatchSize INT = 100000;
DECLARE @Deleted INT = 1;
WHILE @Deleted > 0
BEGIN
DELETE TOP (@BatchSize)
FROM _InfoRg29706
WHERE _Fld29707 < DATEADD(MONTH, -3, GETDATE());
SET @Deleted = @@ROWCOUNT;
RAISERROR('Удалено строк: %d', 0, 1, @Deleted) WITH NOWAIT;
WAITFOR DELAY '00:00:01'; -- пауза 1 сек между батчами
END;
PRINT 'Готово!';