Мне нужен запрос в sql для получения полных столбцов в таблице. Может кто-нибудь помочь?
Чтобы получить общее количество столбцов в таблице в sql
Ответ 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
). Это позволит разбить код, если столбцы были добавлены в основную базу данных, а не в архивную базу данных, в которой, если процедура была разрешена для запуска, потеря данных почти наверняка произойдет.