Полезные запросы для MS SQL

Получить список всех баз

SELECT
‘USE [‘ + d.name + N’]’ + CHAR(13) + CHAR(10)
+ ‘DBCC SHRINKFILE (N»’ + mf.name + N»’ , 0, TRUNCATEONLY)’
+ CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10)
FROM
sys.master_files mf
JOIN sys.databases d
ON mf.database_id = d.database_id
WHERE d.database_id > 4;

 

Задать всем БД простую модель восстановления 

USE MASTER
declare
@isql varchar(2000),
@dbname varchar(64)
 
declare c1 cursor for select name from master..sysdatabases where name not in (‘master’,‘model’,‘msdb’,‘tempdb’,‘ReportServer’,‘ReportServerTempDB’)
open c1
fetch next from c1 into @dbname
While @@fetch_status <> 1
    begin
 
    select @isql = ‘ALTER DATABASE @dbname SET RECOVERY SIMPLE’
    select @isql = replace(@isql,‘@dbname’,@dbname)
    print @isql
    exec(@isql)
 
    select @isql=‘USE @dbname; DBCC SHRINKFILE (N’‘@dbname_log’‘ , 0, TRUNCATEONLY)’
    select @isql = replace(@isql,‘@dbname’,@dbname)
    print @isql
    exec(@isql)
 
    fetch next from c1 into @dbname
    end
close c1
deallocate c1
 
Получить скрипт для шринка логов всех БД 
SELECT 
      'USE [' + d.name + N']' + CHAR(13) + CHAR(10) 
    + 'DBCC SHRINKFILE (N''' + mf.name + N''' , 0, TRUNCATEONLY)' 
    + CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10) 
FROM 
         sys.master_files mf 
    JOIN sys.databases d 
        ON mf.database_id = d.database_id 
WHERE d.database_id > 4;
 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *