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'


Dariusz Brejnak

Od prawie trzydziestu lat jest pasjonatem informatyki, a zwłaszcza dziedzin dotyczących baz danych, hurtowni danych oraz ogólnie rozumianej tematyki BI. Jego druga pasja to fotografia http://dariuszbrejnak.pl