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


sp_columns (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

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

Синтаксис

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

Аргументы

  • [ @table_name=] object
    Имя владельца таблицы или представления, используемых для возврата сведений о каталоге. Аргумент object может быть таблицей, представлением или другим объектом, имеющим такие столбцы, как функции с табличными значениями. Аргумент object имеет тип 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_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. СУБД SQL, совместимая со стандартом ISO, не может возвращать пустую строку.

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

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

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

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

SS_DATA_TYPE

tinyint

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

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

Разрешения

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

Замечания

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

Примеры

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

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

См. также

Справочник

sp_tables (Transact-SQL)

Хранимые процедуры каталога (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)