Probably not the most efficient or elegant way to do it but works for me
DECLARE @sql NVARCHAR(MAX);
DECLARE @dbs TABLE
(
dbname NVARCHAR(MAX) ,
done BIT
)
DECLARE @dbname NVARCHAR(MAX)
INSERT INTO @dbs
( dbname ,
done
)
SELECT name ,
0
FROM master.sys.databases
WHERE recovery_model_desc <> 'simple'
WHILE ( SELECT COUNT(*)
FROM @dbs
WHERE done = 0
) > 0
BEGIN
SET @dbname = ( SELECT TOP 1
dbname
FROM @dbs
WHERE done = 0
)
SET @sql = 'Alter Database ' + @dbname
+ ' SET RECOVERY SIMPLE WITH NO_WAIT'
UPDATE @dbs
SET done = 1
WHERE dbname = @dbname
EXEC(@sql)
PRINT @sql
END