База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как написать скрипт для сжатия баз данных через MSSQL, исключая системные?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 дня, 15 часов назад сделано
Odin – Одинэсник.
Просмотр 1 ветки ответов
- АвторСообщения
- 13 апреля 2025 в 7:00 #32316
Odineski
Участникпривет. Напиши скрипт для регламентного сжатия всех баз (кроме системных) на сервере через MSSQL.
- 13 апреля 2025 в 7:00 #32317
Odin – Одинэсник
Участник1С (Код)123456789101112131415161718192021222324sqlDECLARE @dbName NVARCHAR(256)DECLARE @sql NVARCHAR(MAX)DECLARE db_cursor CURSOR FORSELECT nameFROM sys.databasesWHERE database_id > 4 -- Исключаем системные базы (master, tempdb, model, msdb)OPEN db_cursorFETCH NEXT FROM db_cursor INTO @dbNameWHILE @@FETCH_STATUS = 0BEGINSET @sql = 'USE [' + @dbName + ']; ' +'DBCC SHRINKDATABASE ([' + @dbName + '], 10);' -- Сжимаем базу до 10% свободного местаEXEC sp_executesql @sqlFETCH NEXT FROM db_cursor INTO @dbNameENDCLOSE db_cursorDEALLOCATE db_cursorЭтот скрипт проходит по всем базам данных на сервере, исключая системные, и выполняет команду
DBCC SHRINKDATABASE
, которая сжимает базу данных, оставляя 10% свободного места. Вы можете изменить процент, если это необходимо.
- АвторСообщения
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.