sql
DECLARE @dbName NVARCHAR(256)
DECLARE @sql NVARCHAR(MAX)
DECLARE db_cursor CURSOR FOR
SELECT name
FROM sys.databases
WHERE database_id > 4 -- Исключаем системные базы (master, tempdb, model, msdb)
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @dbName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = 'USE [' + @dbName + ']; ' +
'DBCC SHRINKDATABASE ([' + @dbName + '], 10);' -- Сжимаем базу до 10% свободного места
EXEC sp_executesql @sql
FETCH NEXT FROM db_cursor INTO @dbName
END
CLOSE db_cursor
DEALLOCATE db_cursor
Этот скрипт проходит по всем базам данных на сервере, исключая системные, и выполняет команду `DBCC SHRINKDATABASE`, которая сжимает базу данных, оставляя 10% свободного места. Вы можете изменить процент, если это необходимо.