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

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

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

Совет оценил.

Ответ 1

Да, таблицы словарей данных позволят вам сделать это. Основные таблицы в словаре данных sys.objects, sys. столбцы, sys.indexes, sys.foreign_keys и sys.sql_modules. Для примера различных запросов, которые используют словарь системных данных для обратного проектирования базы данных на SQL script, посмотрите fooobar.com/questions/13610/....

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

Ответ 2

Взгляните на системные представления, в частности информацию_схемы. Эти procs также получат много данных, которые вы ищете.

sp_helpdb dbname
sp_help objectname
sp_spaceused tablename

Ответ 3

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

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