sp_columns_ex (Transact-SQL)

Применимо к:SQL Server

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

Соглашения о синтаксисе 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' Имя столбца базы данных, для которого предоставляются сведения. Столбец имеет имя sysname с значением NULL по умолчанию.

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

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

None

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

Имя столбца Тип данных Описание:
TABLE_CAT sysname Имя квалификатора таблицы или представления. Различные продукты СУБД поддерживают трехкомпонентное именование таблиц (квалификатор).владелец.имя). В 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 находится в базе 10.
BUFFER_LENGTH int Размер буфера при передаче данных.
DECIMAL_DIGITS smallint Число цифр справа от десятичной запятой.
NUM_PREC_RADIX smallint Основание системы счисления для числовых типов данных.
NULLABLE smallint Указывает возможность содержать значение NULL.

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

0 = значение NULL недопустимо.
ЗАМЕЧАНИЯ varchar(254) Это поле всегда возвращает значение NULL.
COLUMN_DEF varchar(254) Значение столбца по умолчанию.
SQL_DATA_TYPE smallint Значение типа данных SQL в том же виде, что и в поле TYPE дескриптора. Этот столбец совпадает с столбцом DATA_TYPE, за исключением типов данных даты и времени и интервала SQL-92. Этот столбец всегда возвращает значение .
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, используемый расширенными хранимыми процедурами.

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

Замечания

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

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

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

Разрешения

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

Примеры

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

EXEC sp_columns_ex 'Seattle1',   
   'Employee',   
   'HumanResources',   
   'AdventureWorks2022',   
   '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)