Вы можете посмотреть на столбцы в sys.columns :
Возвращает строку для каждого столбца объекта, который имеет столбцы, такие как представления или таблицы. Ниже приведен список типов объектов, имеющих столбцы:
- Табличные функции сборки (FT)
- Встроенные табличные функции SQL (IF)
- Внутренние столы (ИТ)
- Системные таблицы (S)
- Табличные функции SQL (TF)
- Пользовательские таблицы (U)
- Просмотры (V)
Для подсчета столбцов в таблицах можно использовать этот запрос:
SELECT [Schema] = s.name
, [Table] = t.name
, number = COUNT(*)
FROM sys.columns c
INNER JOIN sys.tables t ON c.object_id = t.object_id
INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
GROUP BY t.name, s.name
- sys.tables можно заменить на sys.views для подсчета в представлениях
sys.objects также можно использовать с WHERE
условием для обязательных типов:
SELECT [Schema] = s.name
, [Table] = o.name
, number = COUNT(*)
, o.type_desc
FROM sys.columns c
INNER JOIN sys.objects o ON c.object_id = o.object_id
INNER JOIN sys.schemas s ON o.schema_id = s.schema_id
WHERE type IN (
'U' --> U = Table (user-defined)
, 'V' --> V = View
, ...)
GROUP BY o.name, s.name, o.type_desc;
Это также будет работать, хотя предпочтительнее (см. «Дело против представлений INFORMATION_SCHEMA» от Аарона Бертранда) использовать первый запрос:
SELECT TABLE_SCHEMA
, TABLE_NAME
, number = COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY TABLE_SCHEMA, TABLE_NAME;
источник