При проектировании больших баз данных я всегда стараюсь давать всем таблицам максимально понятные названия, а также, если это позволяет сделать БД, создавать описания к таблицам. Это очень удобно, когда таблиц становится очень много, а ты сам уже начинаешь забывать для чего та или иная таблица, а также при введении в курс дел нового разработчика. Однако прокликивать все таблиц, чтобы прочитать описание, очень не удобно. В рамках MS SQL Server может быть удобен следующий скрипт, который выводит список названий таблиц, их схему, дату создания и дату последнего изменения таблицы, а также количество записей и описание:
SELECT schema_name(tab.schema_id) as schema_name,
tab.name as table_name,
tab.create_date as created,
tab.modify_date as last_modified,
p.rows as num_rows,
ep.value as comments
FROM sys.tables tab
INNER JOIN (SELECT DISTINCT
p.object_id,
sum(p.rows) rows
FROM sys.tables t
INNER JOIN sys.partitions p on p.object_id = t.object_id
GROUP BY p.object_id, p.index_id) p
on p.object_id = tab.object_id
LEFT JOIN sys.extended_properties ep
on tab.object_id = ep.major_id
and ep.name = 'MS_Description'
and ep.minor_id = 0
and ep.class_desc = 'OBJECT_OR_COLUMN'
ORDER BY schema_name, table_name
Иногда нужно просто получить список таблиц и количество записей в них, для этого можно воспользоваться более простым скриптом:
SELECT o.NAME, i.rowcnt
FROM sysindexes AS i
INNER JOIN sysobjects AS o ON i.id = o.id
WHERE i.indid < 2 AND OBJECTPROPERTY(o.id, 'IsMSShipped') = 0
ORDER BY o.NAME