Здравствуйте. Подскажите пожалуйста.
Есть 4 сервера, в каждом по 30-40 БД. Само собой, базы расширяются, и следить за всеми через ПКМ->свойства - очень удручает.
Логи режутся, но хочется, чтобы и доступное место было как можно меньше.
Был написан скриптец с курсором (не кидайтесь тапками, я не знаю как это сделать лучше) и использованием sp_spaceused.
Но пока этот скрипт выполняется (для 10 не таких больших БД ~ 10 секунд) можно ежа родить. А уж если запускать через "Зарегистрированные серверы", там можно тушить свет и ложиться спать. Ну и плюс выводит курсор это все не в очень удобной форме.
Как еще можно сделать скриптец для всех баз на сервере, чтобы выводил это "Доступное место"? Size в sys.master_files дает не то(
Есть 4 сервера, в каждом по 30-40 БД. Само собой, базы расширяются, и следить за всеми через ПКМ->свойства - очень удручает.
Логи режутся, но хочется, чтобы и доступное место было как можно меньше.
Был написан скриптец с курсором (не кидайтесь тапками, я не знаю как это сделать лучше) и использованием sp_spaceused.
DECLARE @db_name NVARCHAR(50) DECLARE @sql NVARCHAR(100) DECLARE CUR CURSOR FOR SELECT NAME FROM sys.databases WHERE name LIKE 'A%' --нужные базы начинаются на А (можно конечно поставить условие database_id > 4, но мне нужны именно базы на А) AND state_desc = 'ONLINE' OPEN CUR FETCH NEXT FROM CUR INTO @db_name WHILE @@fetch_status = 0 BEGIN SELECT @sql = 'USE ['+@db_name+'];' SELECT @sql = @sql+'EXEC sp_spaceused' EXECUTE (@sql) FETCH NEXT FROM CUR INTO @db_name END CLOSE CUR DEALLOCATE CUR
Но пока этот скрипт выполняется (для 10 не таких больших БД ~ 10 секунд) можно ежа родить. А уж если запускать через "Зарегистрированные серверы", там можно тушить свет и ложиться спать. Ну и плюс выводит курсор это все не в очень удобной форме.
Как еще можно сделать скриптец для всех баз на сервере, чтобы выводил это "Доступное место"? Size в sys.master_files дает не то(