Ответов (3)3
Решение
0
СОЗДАТЬ ТАБЛИЦУ #tmpSizeChar ( table_name sysname, row_count int, reserved_size varchar (50), data_size varchar (50), index_size varchar (50), unused_size varchar (50)) СОЗДАТЬ ТАБЛИЦУ #tmpSizeInt ( table_name sysname, row_count int, reserved_size_KB целое, data_size_KB int, index_size_KB int, unused_size_KB целое) ВКЛЮЧИТЬ NOCOUNT ВСТАВИТЬ #tmpSizeChar EXEC sp_msforeachtable 'sp_spaceused' '?' '' ВСТАВИТЬ В #tmpSizeInt ( table_name, row_count, зарезервированный_размер_КБ, data_size_KB, index_size_KB, unused_size_KB ) ВЫБЕРИТЕ [имя_таблицы], row_count, CAST (SUBSTRING (зарезервированный_размер, 0, PATINDEX ('%%', зарезервированный_размер)) КАК int) зарезервированный_размер, CAST (SUBSTRING (размер_данных, 0, PATINDEX ('%%', размер_данных)) AS int) размер_данных, CAST (SUBSTRING (размер_индекса, 0, PATINDEX ('%%', размер_индекса)) AS int) размер_индекса, CAST (SUBSTRING (unused_size, 0, PATINDEX ('%%', unused_size)) AS int) unused_size ОТ #tmpSizeChar / * DROP TABLE #tmpSizeChar УДАЛИТЬ ТАБЛИЦУ #tmpSizeInt * / ВЫБРАТЬ * ИЗ #tmpSizeInt ЗАКАЗАТЬ ПО зарезервированному размеру_КБ УДАЛЕНИЕ
0
Проверьте это, я знаю, что это работает в 2005 году ( документация Microsoft ):
Вот это для базы данных пабов
select *
from pubs.sys.database_files
Возвращает размер и max_size.