sp_columns (Transact-SQL)
Изменения: 17 июля 2006 г.
Возвращает сведения о столбце для указанных таблиц или представлений, которые могут быть запрошены в текущей среде.
Синтаксические обозначения в 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 не задан, применяются правила определения видимости таблиц или представлений по умолчанию для данной СУБД.В версии SQL Server 2005, если текущий пользователь является владельцем таблицы или представления с указанным именем, то возвращаются ее столбцы. Если аргумент 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 и 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 = NOT NULL. |
REMARKS |
varchar(254) |
Это поле всегда возвращает значение NULL. |
COLUMN_DEF |
nvarchar(4000) |
Значение столбца по умолчанию. SQL Server 2005 отличается от SQL Server 2000 способом расшифровки и хранения выражений SQL в метаданных каталога. Семантика декодированных выражений эквивалентна исходному тексту, однако синтаксическое сходство не гарантируется. Например, из декодированного выражения удаляются пробелы. Дополнительные сведения см. в разделе Изменения в работе функций компонента Database Engine в SQL Server 2005. |
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 для схемы.
Примеры
Следующий пример возвращает данные столбца для указанной таблицы.
USE AdventureWorks
GO
EXEC sp_columns @table_name = N'Department',
@table_owner = N'HumanResources';
См. также
Справочник
sp_tables (Transact-SQL)
Хранимые процедуры каталога (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
17 июля 2006 г. |
|