Я использую цикл для удаления многих строк в чанках.
WHILE EXISTS (SELECT 1 FROM dbo.Table WHERE LogTime < CAST('2018-11-05' AS
DATE))
BEGIN
BEGIN TRANSACTION T1
DELETE TOP (1000) FROM dbo.Table
WHERE LogTime < CAST('2018-11-05' AS date);
COMMIT;
END
Я ожидаю, что каждый цикл цикла Loop - это одна транзакция, которая заканчивается на "COMMIT" и, следовательно, что журнал транзакций очищается послекаждый цикл цикла.
К сожалению, это не так. В какой-то момент спустя примерно 15 минут запрос завершается сбоем из-за «журнала транзакций заполнен»Затем начинается откат, который выполняет откат не только последнего цикла цикла, но и всего запроса, включая все остальные циклы цикла.