sp_columns (Transact-SQL)
Возвращает сведения о столбце для указанных таблиц или представлений, которые могут быть запрошены в текущей среде.
Синтаксис
sp_columns [ @table_name = ] object [ , [ @table_owner = ] owner ]
[ , [ @table_qualifier = ] qualifier ]
[ , [ @column_name = ] column ]
[ , [ @ODBCVer = ] ODBCVer ]
Аргументы
[ @table_name=] object
Это имя таблицы или представления, в которые возвращаются данные каталога. Аргумент object_name имеет тип 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. |
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 AdventureWorks
GO
EXEC sp_columns @table_name = N'Department',
@table_owner = N'HumanResources';