COLUMNPROPERTY (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Эта функция возвращает сведения о столбце или параметре.
Соглашения о синтаксисе Transact-SQL
Синтаксис
COLUMNPROPERTY ( id , column , property )
Аргументы
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)