Есть ли быстрый способ сообщить о метаданных базы данных в SQL Server 2005?

StackOverflow https://stackoverflow.com/questions/454986

Вопрос

Существуют ли какие-либо системные хранимые процедуры для представления статистики и метаданных самой базы данных в 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, и это сохраняется для сохранения обратной совместимости.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top