COLUMNPROPERTY (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)
См. также