Получение имен колонок из таблицы в SQL Server

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Следующая команда позволяет получить имена столбцов из таблицы в SQL Server:

SQL
Скопировать код
SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'Введите_Имя_Таблицы';

Вместо 'ВведитеИмяТаблицы' подставьте название вашей таблицы.

Если вы работаете с использованием различных схем, то добавьте также TABLE_SCHEMA:

SQL
Скопировать код
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Введите_Имя_Таблицы' AND TABLE_SCHEMA='Введите_Имя_Схемы';
Кинга Идем в IT: пошаговый план для смены профессии

Более продвинутые возможности работы с метаданными

Метаданные в представлениях

Представление INFORMATION_SCHEMA.COLUMNS предоставляет имена столбцов и продвинутые метаданные, включая типы данных, возможность принимать значения null и значения по умолчанию. Объединяя с другими представлениями INFORMATION_SCHEMA, можно получить более детальное представление:

SQL
Скопировать код
SELECT 
    t.TABLE_NAME,
    c.COLUMN_NAME,
    c.DATA_TYPE,
    c.CHARACTER_MAXIMUM_LENGTH,
    c.IS_NULLABLE,
    k.CONSTRAINT_NAME,
    k.COLUMN_NAME as CONSTRAINT_COLUMN,
    p.PERMISSION_TYPE
FROM INFORMATION_SCHEMA.COLUMNS c
JOIN INFORMATION_SCHEMA.TABLES t
    ON c.TABLE_NAME = t.TABLE_NAME
LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE k
    ON c.TABLE_NAME = k.TABLE_NAME AND c.COLUMN_NAME = k.COLUMN_NAME
LEFT JOIN INFORMATION_SCHEMA.COLUMN_PRIVILEGES p
    ON c.TABLE_NAME = p.TABLE_NAME AND c.COLUMN_NAME = p.COLUMN_NAME
WHERE c.TABLE_NAME = 'Введите_Имя_Таблицы';

Использование системных объектов для углубленной работы с каталогом

Вы можете получить более глубокий просмотр ваших данных, используя системные объекты каталога, такие как sys.columns и OBJECT_ID:

SQL
Скопировать код
SELECT 
    col.name AS ColumnName, 
    typ.name AS DataType,
    col.max_length AS MaxLength,
    col.precision,
    col.scale,
    col.is_nullable AS IsNullable,
    obj.name AS TableName
FROM 
    sys.columns col
    JOIN sys.types typ ON col.user_type_id = typ.user_type_id
    JOIN sys.objects obj ON col.object_id = obj.object_id
WHERE 
    obj.type = 'U'
    AND obj.name = 'Введите_Имя_Таблицы'
ORDER BY 
    obj.name, 
    col.column_id;

Использование хранимых процедур

Подробная информация о столбцах

sp_columns и sp_help можно рассматривать как классическую энциклопедию для SQL Server, предоставляющую обширную информацию:

SQL
Скопировать код
EXEC sp_help 'Введите_Имя_Таблицы';

EXEC sp_columns 'Введите_Имя_Таблицы';

Визуализация

Принцип извлечения имен столбцов можно сравнить со списком глав в книге:

Markdown
Скопировать код
Книга 📖: [Глава 1, Глава 2, Глава 3] 
Таблица SQL 🗄️: [Столбец 1, Столбец 2, Столбец 3]

Используйте вашу SQL-команду как указатель в этом списке:

SQL
Скопировать код
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Ваша_Таблица';

Это работает следующим образом:

Markdown
Скопировать код
Книга 📖 ➡️ Содержание 📝: [Глава 1, Глава 2, Глава 3] 
Таблица SQL 🗄️ ➡️ Запрос 🔍: [Столбец 1, Столбец 2, Столбец 3]

Это так же просто, как 123 или АБВ!

Современные методы

Для быстрого доступа в "SQL Server Management Studio" (SSMS) есть секретное оружие: выберите таблицу и нажмите ALT + F1, sp_help выводит желаемые метаданные.

Определение пользовательских типов и представлений

SQL
Скопировать код
SELECT
    DOMAIN_NAME AS TypeName,
    DOMAIN_DEFAULT AS DefaultValue,
    DATA_TYPE AS DataType
FROM
    INFORMATION_SCHEMA.DOMAINS
WHERE
    DOMAIN_NAME = 'Введите_Имя_Типа';
    
SELECT
    vcu.VIEW_NAME,
    vcu.COLUMN_NAME,
    vt.VIEW_DEFINITION
FROM
    INFORMATION_SCHEMA.VIEW_COLUMN_USAGE vcu 
JOIN
    INFORMATION_SCHEMA.VIEWS vt
    ON vcu.VIEW_NAME = vt.TABLE_NAME 
WHERE
    vcu.VIEW_NAME = 'Введите_Имя_Представления';

Полезные материалы

  1. Обсуждение на Stack Overflow о получении имен столбцов — обзор методов получения имен столбцов в SQL Server от сообщества разработчиков.
  2. Блог SQL Authority о SQL Server Sys.Columns — мнение эксперта SQL Server о том, как представить список имен столбцов.
  3. Учебное пособие на Tutorial Gateway о функции COLUMNPROPERTY в SQL Server — детальное рассмотрение функции COLUMNPROPERTY для выгрузки информации о столбцах.
  4. Скрипт поиска баз данных SQL Server без резервного копирования журнала транзакций — это не прямо о именах столбцов, но полезный пример использования метаданных SQL Server.
  5. Учебник на C# Corner о метаданных SQL Server — другой подход к использованию функций метаданных в SQL Server.