Есть ли быстрый способ сообщить метаданные базы данных в 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
, и она сохраняет сохранение обратной совместимости.