Поделиться через


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 г.

Новое содержимое
  • В столбце COLUMN_DEF добавлены сведения о том, как выражения SQL хранятся в SQL Server 2005.