Есть ли быстрый способ сообщить о метаданных базы данных в SQL Server 2005?
-
19-08-2019 - |
Вопрос
Существуют ли какие-либо системные хранимые процедуры для представления статистики и метаданных самой базы данных в SQL Server 2005?
Что мне нужно, так это быстрый способ вывести список таблиц, размер каждой таблицы, количество строк в каждой таблице и так далее.Сохраненные процедуры для отдельных таблиц и метаданных также были бы полезны.
Совет приветствуется.
Решение
Да, таблицы словаря данных позволят вам сделать это.Основными таблицами в словаре данных являются sys.объекты, система.столбцы, sys.индексы, система.foreign_keys и системные.sql_modules.Для примера множества запросов, которые используют системный словарь данных для обратного преобразования базы данных в SQL-скрипт, взгляните на это публикация stackoverflow.
Получить информацию об использовании пространства немного сложнее из словаря данных, но sp_spaceused - пространство , используемое сделаем это для одной таблицы.Вы можете обернуть это с sp_msforeachтаблица выполнить итерацию по набору таблиц и получить отчет по всем таблицам.
Другие советы
Взгляните на системные представления, в частности на information_schema.tables.Эти процедуры также позволят получить большую часть данных, которые вы ищете.
sp_helpdb dbname
sp_help objectname
sp_spaceused tablename
Вместо того, чтобы запрашивать sysobjects
и т.д...таблицы непосредственно, вы можете использовать INFORMATION_SCHEMA
Вид.
На самом деле, sysobjects
был столик в SQL SErver2000
, но в SQL 2005
, это реализовано как view
, и это сохраняется для сохранения обратной совместимости.