sp_columns_ex (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

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

Синтаксис

sp_columns_ex [ @table_server = ] 'table_server' 
     [ , [ @table_name = ] 'table_name' ] 
     [ , [ @table_schema = ] 'table_schema' ] 
     [ , [ @table_catalog = ] 'table_catalog' ] 
     [ , [ @column_name = ] 'column' ] 
     [ , [ @ODBCVer = ] 'ODBCVer' ]

Аргументы

  • [ @table_server = ] 'table_server'
    Имя связанного сервера, для которого возвращаются сведения о столбцах. Аргумент table_server имеет тип sysname и не имеет значения по умолчанию.

  • [ @table_name = ] 'table_name']
    Имя таблицы, для которой возвращаются сведения о столбцах. Аргумент table_name имеет тип sysname и значение по умолчанию NULL.

  • [ @table_schema = ] 'table_schema'
    Имя схемы таблицы, для которой возвращаются сведения о столбцах. Аргумент table_schema имеет тип sysname и значение по умолчанию NULL.

  • [ @table_catalog = ] 'table_catalog'
    Имя каталога таблицы, для которой возвращаются сведения о столбцах. Аргумент table_catalog имеет тип sysname и значение по умолчанию NULL.

  • [ @column_name = ] 'column'
    Имя столбца базы данных, для которого возвращаются сведения. Аргумент column имеет тип sysname и значение по умолчанию NULL.

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

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

Отсутствует

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

Имя столбца

Тип данных

Описание

TABLE_CAT

sysname

Имя квалификатора таблицы или представления. Различные продукты СУБД поддерживают трехкомпонентные имена таблиц (qualifier.owner.name). В SQL Server этот столбец представляет имя базы данных. В некоторых СУБД он представляет имя сервера в среде базы данных, где находится таблица. Это поле может иметь значение NULL.

TABLE_SCHEM

sysname

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

TABLE_NAME

sysname

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

COLUMN_NAME

sysname

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

DATA_TYPE

smallint

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

TYPE_NAME

varchar(13)

Тип данных в символьном представлении. Название типа предоставляется базовой СУБД.

COLUMN_SIZE

int

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

BUFFER_LENGTH

int

Размер буфера при передаче данных.

DECIMAL_DIGITS

smallint

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

NUM_PREC_RADIX

smallint

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

NULLABLE

smallint

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

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

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

REMARKS

varchar(254)

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

COLUMN_DEF

varchar(254)

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

SQL_DATA_TYPE

smallint

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

SQL_DATETIME_SUB

smallint

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

CHAR_OCTET_LENGTH

int

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

ORDINAL_POSITION

int

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

IS_NULLABLE

varchar(254)

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

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

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

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

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

SS_DATA_TYPE

tinyint

Тип данных SQL Server, используемый расширенными хранимыми процедурами.

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

Замечания

При выполнении sp_columns_ex запрашивается набор строк COLUMNS интерфейса IDBSchemaRowset поставщика OLE DB, соответствующего table_server. Этому интерфейсу для ограничения возвращаемых строк передаются аргументы table_name, table_schema, table_catalog и column.

sp_columns_ex возвращает пустой результирующий набор, если поставщик OLE DB для соответствующего связанного сервера не поддерживает набор строк COLUMNS интерфейса IDBSchemaRowset.

Разрешения

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

Замечания

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

Примеры

В следующем примере возвращается тип данных для столбца JobTitle в таблице HumanResources.Employee в базе данных AdventureWorks2012 на связанном сервере Seattle1.

EXEC sp_columns_ex 'Seattle1', 
   'Employee', 
   'HumanResources', 
   'AdventureWorks2012', 
   'JobTitle';

См. также

Справочник

sp_catalogs (Transact-SQL)

sp_foreignkeys (Transact-SQL)

sp_indexes (Transact-SQL)

sp_linkedservers (Transact-SQL)

sp_primarykeys (Transact-SQL)

sp_tables_ex (Transact-SQL)

sp_table_privileges (Transact-SQL)

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