Есть ли быстрый способ сообщить метаданные базы данных в SQL Server 2005? - PullRequest
2 голосов
/ 18 января 2009

Существуют ли какие-либо системные хранимые процедуры для отчета о статистике и метаданных самой базы данных в SQL Server 2005?

Мне нужен быстрый способ вывода списка таблиц, размера каждой таблицы, количества строк в каждой таблице и так далее. Сохраненные процедуры для отдельных таблиц и метаданных также будут полезны.

Советы приветствуются.

Ответы [ 3 ]

2 голосов
/ 18 января 2009

Посмотрите на системные представления, в частности на information_schema.tables. Эти процедуры также получат много данных, которые вы ищете.

sp_helpdb dbname
sp_help objectname
sp_spaceused tablename
2 голосов
/ 18 января 2009

Вместо прямого запроса к таблицам sysobjects и т. Д., Вы можете использовать представление INFORMATION_SCHEMA.

Фактически, sysobjects была таблицей в SQL SErver2000, но в SQL 2005 она реализована как view и сохраняется для сохранения обратной совместимости.

2 голосов
/ 18 января 2009

Да, таблицы словаря данных позволят вам сделать это. Главные таблицы в словаре данных: sys.objects , sys.columns , sys.indexes , sys.foreign_keys и sys.sql_modules . В качестве примера множества запросов, которые используют системный словарь данных для обратного инжиниринга базы данных в сценарий SQL, взгляните на эту запись в стеке потока.

Использование словаря данных немного сложнее из словаря данных, но sp_spaceused сделает это для одной таблицы. Вы можете заключить это в sp_msforeachtable , чтобы выполнить итерацию по набору таблиц и получить отчет для всех таблиц.

...