sp_columns (Transact-SQL)
Возвращает сведения о столбце для указанных объектов, которые могут быть запрошены в текущей среде.
Синтаксические обозначения 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';