Поделиться через


sp_columns (Transact-SQL)

Возвращает сведения о столбце для указанных таблиц или представлений, которые могут быть запрошены в текущей среде.

Значок ссылки на разделСинтаксические обозначения языка Transact-SQL

Синтаксис

sp_columns [ @table_name = ] object  [ , [ @table_owner = ] owner ] 
     [ , [ @table_qualifier = ] qualifier ] 
     [ , [ @column_name = ] column ] 
     [ , [ @ODBCVer = ] ODBCVer ]

Аргументы

  • [ @table_name=] object
    Это имя таблицы или представления, в которые возвращаются данные каталога. Аргумент object_name имеет тип nvarchar(384) и не имеет значения по умолчанию. Поиск совпадений по шаблону поддерживается.

  • [ @table_owner=] owner
    Это объект-собственник таблицы или представления, в которые возвращаются данные каталога. Аргумент owner имеет тип nvarchar(384) и значение по умолчанию NULL. Поиск совпадений по шаблону поддерживается. Если аргумент owner не задан, применяются правила определения видимости таблиц или представлений по умолчанию для данной СУБД.

    Если текущий пользователь является владельцем таблицы или представления с указанным именем, возвращаются столбцы таблицы или представления. Если аргумент owner не указан и текущий пользователь не является владельцем таблицы или представления, содержащего указанный аргумент object, процедура sp_columns ищет таблицу или представление, содержащее указанный аргумент object, владельцем которого является владелец базы данных. Если такая таблица существует, возвращаются ее столбцы.

  • [ @table_qualifier=] qualifier
    Имя квалификатора таблицы или представления. Аргумент qualifier имеет тип sysname и значение по умолчанию NULL. Некоторые СУБД поддерживают трехкомпонентные имена таблиц (qualifier**.owner.**name). В SQL Server этот столбец представляет имя базы данных. В некоторых СУБД он представляет имя сервера в среде базы данных, где находится таблица.

  • [ @column_name=] column
    Одиночный столбец, используемый, если нужен только один столбец информации каталога. Аргумент column имеет тип nvarchar(384) и значение по умолчанию NULL. Если аргумент column не указан, возвращаются все столбцы. В версии SQL Server аргумент column представляет имя столбца в виде, указанном в таблице syscolumns. Поиск совпадений по шаблону поддерживается. Для максимальной совместимости клиент шлюза должен использовать только стандартное согласование SQL-92 (символы-шаблоны % и _).

  • [ @ODBCVer=] ODBCVer
    Версия используемого протокола ODBC. Аргумент ODBCVer имеет тип int и значение по умолчанию 2. Это означает ODBC версии 2. Допустимы значения 2 или 3. Дополнительные сведения о различиях в режимах работы между версиями 2 и 3 см. в спецификации ODBC SQLColumns.

Значения кодов возврата

Нет

Результирующие наборы

Хранимая процедура каталога sp_columns идентична представлению SQLColumns в ODBC. Возвращаемые результаты сортируются по столбцам TABLE_QUALIFIER, TABLE_OWNER и TABLE_NAME.

Имя столбца

Тип данных

Описание

TABLE_QUALIFIER

sysname

Имя квалификатора таблицы или представления. Это поле может иметь значение NULL.

TABLE_OWNER

sysname

Имя владельца таблицы или представления. Это поле всегда возвращает значение.

TABLE_NAME

sysname

Имя таблицы или представления. Это поле всегда возвращает значение.

COLUMN_NAME

sysname

Выдается имя каждого столбца таблицы TABLE_NAME. Это поле всегда возвращает значение.

DATA_TYPE

smallint

Целочисленный код типа данных ODBC. Если этот тип данных не может быть сопоставлен с типом данных ODBC, возвращается значение NULL. Собственное имя типа данных возвращается в столбце TYPE_NAME.

TYPE_NAME

sysname

Строка, представляющая тип данных. Название типа предоставляется базовой СУБД.

PRECISION

int

Количество значащих цифр. Значения, возвращаемые в столбце PRECISION, представляются в десятичной системе счисления.

LENGTH

int

Размер передаваемых данных.1

SCALE

smallint

Число цифр справа от десятичной запятой.

RADIX

smallint

Основание системы счисления числовых типов данных.

NULLABLE

smallint

Указывает возможность содержать значение NULL.

1 = значение NULL допустимо.

0 = значение NULL недопустимо.

REMARKS

varchar(254)

Это поле всегда возвращает значение NULL.

COLUMN_DEF

nvarchar(4000)

Значение столбца по умолчанию.

SQL Server 2008 и SQL Server 2005 отличаются от SQL Server 2000 способом расшифровки и хранения выражений SQL в метаданных каталога. Семантика декодированных выражений эквивалентна исходному тексту, однако синтаксическое сходство не гарантируется. Например, пробельные символы удаляются из расшифрованного выражения. Дополнительные сведения см. в разделе Изменения в работе функций компонента Database Engine в SQL Server 2008.

SQL_DATA_TYPE

smallint

Значение типа данных SQL в том же виде, что и в поле TYPE дескриптора. Этот столбец содержит то же значение, что и столбец DATA_TYPE, за исключением типа данных datetime и типа данных SQL-92 interval. Этот столбец всегда возвращает значение.

SQL_DATETIME_SUB

smallint

Код подтипа для datetime и интервальных типов данных SQL-92. Для других типов данных этот столбец возвращает значение NULL.

CHAR_OCTET_LENGTH

int

Максимальная длина столбца символьного или целочисленного типа в байтах. Для всех других типов данных этот столбец возвращает значение NULL.

ORDINAL_POSITION

int

Порядковый номер столбца в таблице. Первый столбец в таблице имеет порядковый номер 1. В этом столбце всегда возвращается значение.

Свойство IS_NULLABLE

varchar(254)

Возможность столбца в таблице возвращать значение NULL. Для определения возможности возвращать NULL используются правила ISO. СУБД, совместимая с ISO SQL, не может вернуть пустую строку.

YES = Столбец может содержать значение NULL.

NO = Столбец не может содержать значения NULL.

Если возможность возвратить значение NULL неизвестна, этот столбец возвращает строку нулевой длины.

Значение, возвращаемое в данном столбце, отличается от значения, возвращаемого в столбце NULLABLE.

SS_DATA_TYPE

tinyint

Тип данных SQL Server, используемый расширенными хранимыми процедурами. Дополнительные сведения см. в разделе Типы данных (Transact-SQL).

1 Дополнительные сведения см. в документации по Microsoft ODBC.

Разрешения

Необходимо разрешение SELECT на схему.

Замечания

sp_columns соответствует требованиям к идентификаторам с разделителями. Дополнительные сведения см. в разделе Идентификаторы с разделителями (компонент Database Engine).

Примеры

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

USE AdventureWorks
GO
EXEC sp_columns @table_name = N'Department',
   @table_owner = N'HumanResources';