Poniżej przedstawiam skrypt służący do shrinkowania logów transakcyjnych wszystkich baz danych użytkownika poza bazami systemowymi. Wybierane są wyłącznie w statusie ONLINE i w recovery model simple. Skrypt generuje wiersze z komendami do uruchomienia.
SELECT
'USE [' + d.name + N']' + CHAR(13) + CHAR(10)
+ 'DBCC SHRINKFILE (N''' + mf.name + N''' , 1)'
+ CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10) as scripts
FROM sys.master_files mf
JOIN sys.databases d ON mf.database_id = d.database_id
WHERE d.database_id > 4 -- bez baz systemowym
and d.state_desc='ONLINE'
and d.recovery_model_desc = 'SIMPLE' -- shrink tylko w recovery model SIMPLE
and type_desc = 'LOG'