Dla tych, którym nie udało się znaleźć gdzie indziej a potrzebują skryptu, który zmniejszy rozmiar puchnących logami baz danych w MS SQL serwerze – gotowe rozwiązanie:
DECLARE @baza CHAR(255)
DECLARE @tmp CHAR(2000)
DECLARE cursor_bazy CURSOR FOR
SELECT name FROM master..sysdatabases –WHERE name not in (‘master’,’tempdb’,’model’,’pubs’,’msdb’)
OPEN cursor_bazy
FETCH NEXT FROM cursor_bazy
INTO @baza
WHILE @@FETCH_STATUS = 0
BEGIN
SET @tmp = ‘BACKUP LOG ‘ + rtrim(@baza) + ‘ WITH TRUNCATE_ONLY’
EXEC (@tmp)
SET @tmp = ‘DBCC SHRINKDATABASE (‘ + rtrim(@baza) + ‘)’
EXEC (@tmp)
FETCH NEXT FROM cursor_bazy
INTO @baza
END
CLOSE cursor_bazy
DEALLOCATE cursor_bazy
Fajne jest jak baza z 50GB nagle zmienia się w trzygigowego szkraba:)