sp_MSForEachDb 'declare @LogFile nvarchar(2000) declare @ExeString nvarchar(2000) IF ''?'' NOT IN (''master'', ''tempdb'', ''model'', ''msdb'') BEGIN USE [?] SELECT @LogFile = dbo.sysaltfiles.name FROM master.dbo.sysdatabases INNER JOIN dbo.sysaltfiles ON master.dbo.sysdatabases.dbid = dbo.sysaltfiles.dbid WHERE (master.dbo.sysaltfiles.fileid = 1) AND (master.dbo.sysdatabases.name = ''?'') ALTER DATABASE [?] SET RECOVERY SIMPLE SET @ExeString = ''DBCC SHRINKFILE ('' + QUOTENAME(@LogFile) + '', 1)'' EXEC (@ExeString) END'Check for errors, because I wrote this directly here and didn't test it :-)