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


COLUMNPROPERTY (Transact-SQL)

Возвращает сведения о столбце или о параметре.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

COLUMNPROPERTY ( id , column , property ) 

Аргументы

  • id
    Выражение, которое содержит идентификатор таблицы или процедуры.

  • column
    Выражение, которое содержит имя столбца или параметра.

  • property
    Выражение, которое содержит информацию, возвращаемую для аргумента id, и может быть одним из следующих значений.

    Значение

    Описание

    Возвращаемое значение

    AllowsNull

    Разрешение использовать NULL.

    1 = TRUE;

    0 = FALSE;

    NULL = Введенные значения недопустимы.

    ColumnId

    Значение идентификатора столбца, соответствующего sys.columns.column_id.

    Идентификатор столбца

    ПримечаниеПримечание
    При запросе множества столбцов могут появиться пропуски в последовательности значений идентификаторов столбца.

    FullTextTypeColumn

    TYPE COLUMN в таблице, которая содержит информацию column о типе документа.

    Идентификатор полнотекстового TYPE COLUMN для столбцов, переданных вторым параметром этого свойства.

    IsComputed

    Столбец является вычисляемым столбцом.

    1 = TRUE;

    0 = FALSE;

    NULL = Введенные значения недопустимы.

    IsCursorType

    Параметр процедуры имеет тип CURSOR.

    1 = TRUE;

    0 = FALSE;

    NULL = Введенные значения недопустимы.

    IsDeterministic

    Столбцы являются детерминированными (предсказуемыми). Это свойство применимо только к вычисляемым столбцам и столбцам представлений.

    1 = TRUE;

    0 = FALSE;

    NULL = Введенные значения недопустимы. Невычисляемый столбец или не столбец представлений.

    IsFulltextIndexed

    Столбцы отмечены для полнотекстовой индексации.

    1 = TRUE;

    0 = FALSE;

    NULL = Введенные значения недопустимы.

    IsIdentity

    Столбец использует свойство IDENTITY.

    1 = TRUE;

    0 = FALSE;

    NULL = Введенные значения недопустимы.

    IsIdNotForRepl

    Столбец проверяет настройку IDENTITY_INSERT.

    1 = TRUE

    0 = FALSE

    NULL = Введенные значения недопустимы.

    IsIndexable

    Столбцы не могут быть индексированы.

    1 = TRUE;

    0 = FALSE;

    NULL = Введенные значения недопустимы.

    IsOutParam

    Параметр процедуры является выходным параметром.

    1 = TRUE;

    0 = FALSE NULL = Введенные значения недопустимы.

    IsPrecise

    Точный столбец. Это свойство применимо только к детерминированным столбцам.

    1 = TRUE;

    0 = FALSE NULL = Введенные значения недопустимы. Недетерминированный столбец

    IsRowGuidCol

    Столбец имеет тип данных uniqueidentifier и определяется вместе со свойством ROWGUIDCOL.

    1 = TRUE;

    0 = FALSE;

    NULL = Введенные значения недопустимы.

    IsSystemVerified

    Свойства детерминированности и точности столбца могут быть проверены с помощью Database Engine. Это свойство применимо только к вычисляемым столбцам и столбцам представлений.

    1 = TRUE;

    0 = FALSE;

    NULL = Введенные значения недопустимы.

    IsXmlIndexable

    XML-столбец может быть использован в XML-индексе.

    1 = TRUE;

    0 = FALSE;

    NULL = Введенные значения недопустимы.

    Precision

    Длина для типа данных в столбце или для параметра.

    Длина заданного типа данных столбца

    -1 = xml или типы больших значений

    NULL = Введенные значения недопустимы.

    Scale

    Масштаб для типа данных в столбце или для параметра.

    Масштаб

    NULL = Введенные значения недопустимы.

    SystemDataAccess

    Столбец, полученный из функции, которая получает данные в системных каталогах или виртуальных системных таблицах SQL Server. Это свойство применимо только к вычисляемым столбцам и столбцам представлений.

    1 = TRUE (обозначает доступ только для чтения)

    0 = FALSE;

    NULL = Введенные значения недопустимы.

    UserDataAccess

    Столбец, полученный из функции, которая получает данные в пользовательских таблицах, включая таблицы видов и временные таблицы, хранится в локальном экземпляре SQL Server. Это свойство применимо только к вычисляемым столбцам и столбцам представлений.

    1 = TRUE (обозначает доступ только для чтения)

    0 = FALSE;

    NULL = Введенные значения недопустимы.

    UsesAnsiTrim

    ANSI_PADDING был установлен как ON, если таблица была создана впервые. Это свойство применимо только к столбцам или параметрам типа char или varchar.

    1= TRUE

    0= FALSE

    NULL = Введенные значения недопустимы.

    IsSparse

    Столбец является разреженным столбцом. Дополнительные сведения см. в разделе Использование разреженных столбцов.

    1= TRUE

    0= FALSE

    NULL = Введенные значения недопустимы.

    IsColumnSet

    Столбец представляет собой набор столбцов. Дополнительные сведения см. в разделе Использование наборов столбцов.

    1= TRUE

    0= FALSE

    NULL = Введенные значения недопустимы.

Типы возвращаемых данных

int

Исключения

Возвращает значение NULL в случае ошибки или отсутствия у участника разрешения на просмотр объекта.

В SQL Server 2008 пользователь может просматривать только метаданные защищаемых объектов, которыми он владеет или на которые ему были предоставлены разрешения. Это означает, что встроенные функции, создающие метаданные, такие как COLUMNPROPERTY, могут вернуть значение NULL в случае, если пользователь не имеет разрешений на объект. Дополнительные сведения см. в разделах Настройка видимости метаданных и Устранение неполадок, связанных с видимостью метаданных.

Замечания

Если проверяется детерминистическое свойство столбца, сначала нужно проверить, является ли столбец вычисляемым. IsDeterministic возвращает NULL для невычисляемых столбцов. Вычисляемые столбцы могут быть определены как индексированные столбцы.

Примеры

Следующий пример возвращает длину столбца LastName.

USE AdventureWorks2008R2;
GO
SELECT COLUMNPROPERTY( OBJECT_ID('Person.Person'),'LastName','PRECISION')AS 'Column Length';
GO

Ниже приводится результирующий набор.

Column Length 
------------- 
50

(1 row(s) affected)