sp_columns_ex (Transact-SQL)
Возвращает сведения о столбцах для указанных таблиц связанного сервера по одной строке на столбец. sp_columns_ex возвращает сведения об одном столбце, если указан параметр column.
Синтаксис
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 2008 и SQL Server 2005 этот столбец представляет имя базы данных. В некоторых системах он представляет имя сервера из окружения базы данных таблицы. Это поле может иметь значение 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 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 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, используемый расширенными хранимыми процедурами. Дополнительные сведения см. в разделе Типы данных (компонент Database Engine). |
Дополнительные сведения см. в документации по 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.
sp_columns_ex соответствует требованиям к идентификаторам с разделителями. Дополнительные сведения см. в разделе Идентификаторы с разделителями (компонент Database Engine).
Разрешения
Необходимо разрешение SELECT на схему.
Примеры
В следующем примере возвращается тип данных для столбца Title в таблице HumanResources.Employee в базе данных AdventureWorks на связанном сервере Seattle1.
EXEC sp_columns_ex 'Seattle1',
'Employee',
'HumanResources',
'AdventureWorks',
'Title';