Подтвердить что ты не робот

Чтобы получить общее количество столбцов в таблице в sql

Мне нужен запрос в sql для получения полных столбцов в таблице. Может кто-нибудь помочь?

4b9b3361

Ответ 1

SELECT COUNT(COLUMN_NAME) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_CATALOG = 'database' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'table'     

Ответ 2

Этот запрос получает имя столбца

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 'YourTableName'

И этот получает count

SELECT Count(*) FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 'YourTableName'

Ответ 3

В MS-SQL Server 7 +:

SELECT count(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'mytable'

Ответ 4

Вы можете попробовать выполнить запрос ниже:

select 
  count(*) 
from 
  all_tab_columns
where 
  table_name = 'your_table'

Ответ 5

Select Table_Name, Count(*) As ColumnCount
From Information_Schema.Columns
Group By Table_Name
Order By Table_Name

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

Если вы хотите узнать количество столбцов для конкретной таблицы в базе данных затем просто используйте предложение where, например. where Table_Name='name_your_table'

Ответ 6

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

SELECT Table_Name, count(*) as [No.of Columns]
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'dbo' -- schema name
group by table_name

Ответ 7

SELECT COUNT (COLUMN_NAME) "НЕТ КОЛОНКИ" ОТ ИНФОРМАЦИИ_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Адрес'

Ответ 8

Исправление к верхнему запросу выше, чтобы разрешить запуск из любой базы данных

SELECT COUNT(COLUMN_NAME) FROM [*database*].INFORMATION_SCHEMA.COLUMNS WHERE 
TABLE_CATALOG = 'database' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'table'

Ответ 9

В моей ситуации я сравнивал количество столбцов таблицы схемы для 2 идентичных таблиц в 2 базах данных; одна из них - основная база данных, а другая - архивная база данных. Я сделал это (SQL 2012 +):

DECLARE @colCount1 INT;
DECLARE @colCount2 INT;

SELECT @colCount1 = COUNT(COLUMN_NAME) FROM MainDB.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'SomeTable';
SELECT @colCount2 = COUNT(COLUMN_NAME) FROM ArchiveDB.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'SomeTable';

IF (@colCount1 != @colCount2) THROW 5000, 'Number of columns in both tables are not equal. The archive schema may need to be updated.', 16;

Важно отметить, что это имя базы данных перед INFORMATION_SCHEMA (которое представляет собой схему, например dbo). Это позволит разбить код, если столбцы были добавлены в основную базу данных, а не в архивную базу данных, в которой, если процедура была разрешена для запуска, потеря данных почти наверняка произойдет.