Как я могу получить имена столбцов из таблицы в SQL Server? - PullRequest
603 голосов
/ 28 июня 2009

Я хотел бы запросить имя всех столбцов таблицы. Я нашел, как это сделать в:

Но мне нужно знать: как это можно сделать в Microsoft SQL Server (2008 в моем случае)?

Ответы [ 17 ]

12 голосов
/ 27 июня 2013

В этом вопросе отсутствует следующий подход:

-- List down all columns of table 'Logging'
select * from sys.all_columns where object_id = OBJECT_ID('Logging')
11 голосов
/ 23 марта 2017

Просто запустите эту команду

EXEC sp_columns 'Your Table Name'
10 голосов
/ 08 апреля 2013

Он проверит, является ли данный table Базовая таблица .

SELECT 
    T.TABLE_NAME AS 'TABLE NAME',
    C.COLUMN_NAME AS 'COLUMN NAME'
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN INFORMATION_SCHEMA.COLUMNS C ON T.TABLE_NAME=C.TABLE_NAME
    WHERE   T.TABLE_TYPE='BASE TABLE'
            AND T.TABLE_NAME LIKE 'Your Table Name'
6 голосов
/ 30 июня 2016

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

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'
5 голосов
/ 09 марта 2017
SELECT c.Name 
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.object_id = OBJECT_ID('TABLE_NAME')
ORDER BY c.Name
4 голосов
/ 24 сентября 2018

Еще один вариант, который, возможно, является более интуитивным:

SELECT [name] 
FROM sys.columns 
WHERE object_id = OBJECT_ID('[yourSchemaType].[yourTableName]') 

Это дает вам все ваши имена столбцов в одном столбце. Если вы заботитесь о других метаданных, вы можете изменить редактировать SELECT STATEMENT TO SELECT *.

1 голос
/ 04 декабря 2015
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'name_of_your_table'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...