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


sp_columns_ex (Transact-SQL)

Область применения: SQL Server

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

[ @table_server = ] N'table_server'

Имя связанного сервера, для которого возвращаются сведения о столбце. @table_server — sysname без значения по умолчанию.

[ @table_name = ] N'table_name'

Имя таблицы, для которой возвращаются сведения о столбце. @table_name — sysname с значением по умолчаниюNULL.

[ @table_schema = ] N'table_schema'

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

[ @table_catalog = ] N'table_catalog'

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

[ @column_name = ] N'column_name'

Имя столбца базы данных, для которого необходимо предоставить сведения. @column_name — sysname с значением по умолчаниюNULL.

[ @ODBCVer = ] ODBCVer

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

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

Нет.

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

Имя столбца Тип данных Description
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 Значение int , соответствующее индикаторам типа 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 = NOT NULL.
REMARKS 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, используемый расширенными хранимыми процедурами.

Дополнительные сведения см. в разделе "Обзор ODBC".

Замечания

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

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

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

Разрешения

Требуется SELECT разрешение на схему.

Примеры

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

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