declare @sql nvarchar (max), @paramDef nvarchar (+) DECLARE dbname scroll cursor for select Name,recovery_model from SYS.D atabases where Database_id>7open dbnamedeclare @dbname varchar (), @recovery_model int, @db_log_file varchar (100) Set @dbname = ' fetch first from dbname to @dbname, @recovery_modelwhile @ @FETCH_STATUS =0begin--alter Recovery Model if (@recovery_model <>3) begin set @sql =n ' ALTER DATABASE ' [email protected]+ ' Set recovery simple ' print ' Recovery: ' [email protected] exec sp_executesql @sql end--get log file of database set @sql =n ' Select @log_file =name from ' [email protected]+ '. sys.database_files where type=1 ' Set @paramDef = N ' @log_file varchar (+) OUTPUT ' E Xec sp_executesql @sql, @paramDef, @[email protected]_log_file output print @db_log_file--shrink file Set @sql = N ' Use [' [email protected]+ '] DBCC shrinkfile (' [email protected]_log_file+ ') ' EXEC sp_executesql @sql fetch Next from dbname to @dbname,@recovery_modelendclose Dbnamedeallocate dbname