Подсчет количества столбцов в SQL Server - PullRequest
2 голосов
/ 05 мая 2011

Есть ли способ узнать количество столбцов в SQL, например, count () ...?

Ответы [ 5 ]

18 голосов
/ 05 мая 2011

в одну сторону

select count(*) from sys.columns 

другой

select count(*) from information_schema.columns

В нижней части нет системных таблиц

по таблице

select count(*),table_name from information_schema.COLUMNS
GROUP BY table_name

только таблицы

select count(*),c.table_name 
from information_schema.COLUMNS c
JOIN information_schema.tables t ON c.TABLE_NAME = t.TABLE_NAME
AND c.TABLE_Schema = t.TABLE_Schema
WHERE TABLE_TYPE = 'base table'  
GROUP BY c.table_name

только просмотр

select count(*),c.table_name 
from information_schema.COLUMNS c
JOIN information_schema.tables t ON c.TABLE_NAME = t.TABLE_NAME
AND c.TABLE_Schema = t.TABLE_Schema
WHERE TABLE_TYPE = 'view'  
GROUP BY c.table_name
6 голосов
/ 05 мая 2011
Select Count(*) From INFORMATION_SCHEMA.COLUMNS Where TABLE_NAME='YourTableName'
2 голосов
/ 05 мая 2011

Это должно работать в нескольких СУБД:

select count(*) from INFORMATION_SCHEMA.COLUMNS

А если вы хотите получить фантазию:

select TABLE_NAME,
       count(*)
  from INFORMATION_SCHEMA.COLUMNS
group by TABLE_NAME
order by TABLE_NAME
0 голосов
/ 17 октября 2016
SELECT count(*)
FROM Database_Name.INFORMATION_SCHEMA.COLUMNS
where table_name = 'Table_Name'

Для запуска необходимо 2 шага: 1- выберите имя_базы_данных для имени вашей базы данных 2- Измените свое имя стола Примечания: если вы не написали database_Name, как

from INFORMATION_SCHEMA.COLUMNS 

извлекает только системную базу данных

0 голосов
/ 07 августа 2015

Для конкретной таблицы:

select * from sys.tables
where name = 'mytable';

Получите из этого object_id, затем используйте:

select count(*) from sys.columns
where object_id = 831342026;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...