sp_columns (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 Server 2008 и SQL Server 2005 отличаются от SQL Server 2000 способом расшифровки и хранения выражений SQL в метаданных каталога. Семантика расшифрованных выражений соответствует исходному тексту, однако правильность синтаксиса не гарантируется. Например, пробельные символы удаляются из расшифрованного выражения. Дополнительные сведения см. в разделе Изменения в работе функций компонента Database Engine в SQL Server 2008 R2. |
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. СУБД, совместимая с ISO SQL, не может вернуть пустую строку. YES = Столбец может содержать значение NULL. NO = Столбец не может содержать значения NULL. Если допустимость значения NULL неизвестна, то этот столбец возвращает строку нулевой длины. Значение, возвращаемое в данном столбце, отличается от значения, возвращаемого в столбце NULLABLE. |
SS_DATA_TYPE |
tinyint |
Тип данных SQL Server, используемый расширенными хранимыми процедурами. Дополнительные сведения см. в разделе Типы данных (Transact-SQL). |
1 Дополнительные сведения см. в документации по Microsoft ODBC.
Разрешения
Необходимо разрешение SELECT для схемы.
Замечания
sp_columns соответствует требованиям к идентификаторам с разделителями. Дополнительные сведения см. в разделе Идентификаторы с разделителями (компонент Database Engine).
Примеры
Следующий пример возвращает данные столбца для указанной таблицы.
USE AdventureWorks2008R2;
GO
EXEC sp_columns @table_name = N'Department',
@table_owner = N'HumanResources';