SQL: подсчет количества столбцов во всех таблицах, кроме представлений - PullRequest
11 голосов
/ 01 марта 2011

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

Следующее работает, но возвращает результаты просмотра:

SELECT COUNT(*), table_name
FROM INFORMATION_SCHEMA.COLUMNS
Group By table_name

Любые предложения?

ПРИМЕЧАНИЕ: MSSQL 2005 +

Ответы [ 4 ]

16 голосов
/ 01 марта 2011

Предполагается, что SQL 2005 или выше

SELECT 
    t.name,
    count(c.name)
FROM 

    sys.tables t 
    inner join sys.columns c
    ON t.object_id = c.object_id


group by t.name
4 голосов
/ 01 марта 2011

Примерно так:

SELECT COUNT(col.column_name), col.table_name
FROM information_schema.columns col
  JOIN information_schema.tables tbl 
       ON tbl.table_name = col.table_name 
          AND tbl.table_schema = col.table_schema
          AND tbl.table_catalog = col.table_catalog
          AND tbl.table_type <> 'VIEW'
GROUP BY col.table_name
0 голосов
/ 11 января 2016
SELECT  tab.table_name,COUNT(col.column_name)
FROM INFORMATION_SCHEMA.tables tab
JOIN INFORMATION_SCHEMA.COLUMNS col ON col.table_name = tab.table_name
WHERE tab.table_type != 'VIEW'
GROUP BY tab.table_name 
ORDER BY tab.table_name 

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

0 голосов
/ 01 марта 2011

Присоединитесь INFORMATION_SCHEMA.TABLES, чтобы узнать, является ли таблица представлением.

SELECT COUNT(col.column_name), tab.table_name 
FROM INFORMATION_SCHEMA.tables tab
JOIN INFORMATION_SCHEMA.COLUMNS col ON col.table_name = tab.table_name
WHERE tab.table_type != 'VIEW'
GROUP BY 2
ORDER BY 2 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...