Есть ли краткий способ получить список имен столбцов таблицы с помощью T-SQL? - PullRequest
5 голосов
/ 06 января 2010

Когда я просматриваю базу данных SQL Server, я часто хочу в интерактивном режиме извлечь простой список имен столбцов для таблицы базы данных (без информации о типе данных и т. Д., Только имена), используя sqlcmd.

Я могу сделать это:

EXEC sp_columns @table_name = 'tablename'

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

SELECT col.name 
FROM sysobjects obj 
INNER JOIN syscolumns col
ON obj.id = col.id where obj.name = 'tablename'

, которая дает мне то, что я хочу, но немного многословна.

Я бы хотел иметь возможность сделать что-то вроде этого:

SELECT column_name
FROM (EXEC sp_columns @table_name = 'tablename')

но это не работает (см., Например, этот вопрос ).

Есть ли более лаконичный способ сделать это (то есть тот, который легче вводить в командной строке и, следовательно, менее подвержен ошибкам)?

Ответы [ 2 ]

9 голосов
/ 06 января 2010

Посмотрите на ANSI-определенные представления INFORMATION_SCHEMA. Попробуйте SELECT * FROM INFORMATION_SCHEMA.COLUMNS для начала и продолжайте.

В вашем примере потребуется этот SQL:

SELECT column_name
FROM information_schema.columns
WHERE table_name = 'tablename'
4 голосов
/ 06 января 2010
SELECT [name] FROM sys.columns WHERE [object_id] = OBJECT_ID('MyTable')

Просмотров каталога :

Рекомендуем использовать каталог взгляды, потому что они самые общий интерфейс к каталогу метаданные и предоставить наиболее эффективный способ получить, преобразовать, и представить индивидуальные формы этого Информация. Все доступно пользователю метаданные каталога доступны через просмотры каталога.

Чисто личное, но мне не нравятся просмотры INFORMATION_SCHEMA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...