अंत में जो उदाहरण मैंने पहले ही लिखा था वह सबसे अच्छा काम करता था; एक लेन-देन लॉग पूर्ण त्रुटि पकड़ में आ जाती है और लॉग को पुनर्नवीनीकरण करने के लिए 15 मिनट का समय पर्याप्त होता है।
DECLARE
@AffectedRows int
SET @AffectedRows = 0
WHILE @AffectedRows < @RowsToUpdate
BEGIN
BEGIN TRY
BEGIN TRAN
-- Do some updates
SET @AffectedRows = @AffectedRows + @@RowCount
COMMIT TRAN
END TRY
BEGIN CATCH
PRINT ERROR_MESSAGE()
WAITFOR DELAY '00:15:00'
END CATCH
END
PRINT @AffectedRows