Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
Это старая версия документа!
Получить режим восстановления для всех баз данных:
SELECT name,recovery_model_desc AS Recovery_model FROM sys.databases ORDER BY recovery_model_desc, name
Другой вариант получить режим восстановления для всех баз данных, за исключением системных:
SELECT [name], DATABASEPROPERTYEX([name],'recovery') AS Recovery_model FROM sysdatabases WHERE name not in ('master','model','tempdb','msdb') ORDER BY Recovery_model, name
Как изменить режим восстановления на SIMPLE для всех баз дынных, за исключением системных:
USE MASTER declare @isql varchar(2000), @dbname varchar(64), @logfile varchar(128) declare c1 cursor for SELECT d.name, mf.name as logfile FROM sys.master_files mf inner join sys.databases d on mf.database_id = d.database_id where recovery_model_desc <> 'SIMPLE' and d.name not in ('master','model','msdb','tempdb') and mf.type_desc = 'LOG' open c1 fetch next from c1 into @dbname, @logfile While @@fetch_status <> -1 begin select @isql = 'ALTER DATABASE ' + @dbname + ' SET RECOVERY SIMPLE' print @isql exec(@isql) select @isql='USE ' + @dbname + ' checkpoint' print @isql exec(@isql) select @isql='USE ' + @dbname + ' DBCC SHRINKFILE (' + @logfile + ', 1)' print @isql exec(@isql) fetch next from c1 into @dbname, @logfile end close c1 deallocate c1
Проверено на следующих конфигурациях:
Автор первичной редакции: Алексей Максимов Время публикации: 20.08.2017 12:44