-- TRONCA I LOG E COMPATTA TUTTI I DATABASE
set nocount on
USE master
GO
EXEC sp_msForEachDB '
BACKUP LOG [?] WITH TRUNCATE_ONLY
DBCC SHRINKDATABASE (''?'', TRUNCATEONLY) WITH NO_INFOMSGS
'
Versione con cursore per Sql2005:
-- TRONCA I LOG E COMPATTA TUTTI I DATABASE ONLINE -- VERSIONE PER SQL 2005 USE master GO set nocount on declare cur cursor for select name from sys.databases where database_id > 4 and state_desc = 'ONLINE' order by name open cur declare @nomeDB as nvarchar(255) fetch next from cur into @nomedb while @@fetch_status = 0 begin print 'Processing ' + @nomeDB + '...' BACKUP LOG @nomeDB WITH TRUNCATE_ONLY DBCC SHRINKDATABASE (@nomeDB, TRUNCATEONLY) WITH NO_INFOMSGS fetch next from cur into @nomedb end close cur deallocate cur print '' print 'Done.'