COLUMNPROPERTY (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Эта функция возвращает сведения о столбце или параметре.

Соглашения о синтаксисе Transact-SQL

Синтаксис

COLUMNPROPERTY ( id , column , property )   

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

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

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

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

значение Описание Возвращенное значение
AllowsNull Разрешение использовать NULL. 1: TRUE

0: FALSE

NULL: недопустимые входные данные.
ColumnId Значение идентификатора столбца, соответствующего sys.columns.column_id. Идентификатор столбца

Примечание. При запросе множества столбцов могут появиться пропуски в последовательности значений идентификаторов столбцов.
FullTextTypeColumn TYPE COLUMN в таблице, которая содержит информацию о типе документа столбца column. Идентификатор полнотекстового TYPE COLUMN для выражений имен столбцов, переданных вторым параметром этой функции.
GeneratedAlwaysType Значение столбца создано системой. Соответствует sys.columns.generated_always_type Область применения: SQL Server 2016 (13.x) и более поздних версий.

0: создается не всегда

1: создается всегда как начало строки

2: создается всегда как конец строки
IsColumnSet Столбец представляет собой набор столбцов. Дополнительные сведения см. в статье Использование наборов столбцов. 1: TRUE

0: FALSE

NULL: недопустимые входные данные.
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: недопустимые входные данные.
IsHidden Значение столбца создано системой. Соответствует sys.columns.is_hidden Область применения: SQL Server 2016 (13.x) и более поздних версий.

0: не скрытый

1: скрытый
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: недопустимые входные данные.
IsSparse Столбец является разреженным столбцом. Дополнительные сведения см. в статье Использование разреженных столбцов. 1: TRUE

0: FALSE

NULL: недопустимые входные данные.
IsSystemVerified Ядро СУБД может проверить детерминированные и точные свойства столбца. Это свойство применимо только к вычисляемым столбцам и столбцам представлений. 1: TRUE

0: FALSE

NULL: недопустимые входные данные.
IsXmlIndexable XML-столбец может быть использован в XML-индексе. 1: TRUE

0: FALSE

NULL: недопустимые входные данные.
Точность Длина типа данных столбца или параметра. Длина заданного типа данных столбца

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

NULL: недопустимые входные данные.
Масштабировать Масштаб для типа данных столбца или параметра. Значение масштаба

NULL: недопустимые входные данные.
StatisticalSemantics Столбец доступен для семантического индексирования. 1: TRUE

0: FALSE
SystemDataAccess Столбец является производным от функции, которая обращается к данным в системных каталогах или таблицах виртуальной системы SQL Server. Это свойство применимо только к вычисляемым столбцам и столбцам представлений. 1: TRUE (обозначает доступ только для чтения)

0: FALSE

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

0: FALSE

NULL: недопустимые входные данные.
UsesAnsiTrim ANSI_PADDING было задано во время создания таблицы. Это свойство применимо только к столбцам или параметрам типа char или varchar. 1: TRUE

0: FALSE

NULL: недопустимые входные данные.

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

int

Исключения

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

Пользователь может просматривать только метаданные защищаемых объектов, которыми он владеет или на которые пользователю были предоставлены разрешения. Это означает, что встроенные функции, создающие метаданные, такие как COLUMNPROPERTY, могут вернуть значение NULL в случае, если у пользователя нет правильных разрешений на объект. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Замечания

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

Примеры

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

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

Результирующий набор:

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

См. также

Функции метаданных (Transact-SQL)
TYPEPROPERTY (Transact-SQL)