Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Эта функция возвращает сведения о столбце или параметре.
Соглашения о синтаксисе Transact-SQL
Синтаксис
COLUMNPROPERTY ( id , column , property )
Аргументы
id
Выражение, которое содержит идентификатор таблицы или процедуры.
column
Выражение, которое содержит имя столбца или параметра.
свойство
Для аргумента id аргумент property указывает тип данных, возвращаемый функцией COLUMNPROPERTY. Аргумент property может принимать следующие значения.
| значение | Описание | Возвращенное значение |
|---|---|---|
| AllowsNull | Разрешение использовать NULL. | 1: ПРАВДА 0: ЛОЖЬ 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: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. |
| IsComputed | Столбец является вычисляемым столбцом. | 1: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. |
| IsCursorType | Параметр процедуры имеет тип CURSOR. | 1: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. |
| IsDeterministic | Столбцы являются детерминированными (предсказуемыми). Это свойство применимо только к вычисляемым столбцам и столбцам представлений. | 1: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. Невычисляемый столбец или не столбец представлений. |
| IsFulltextIndexed | Столбцы зарегистрированы для полнотекстовой индексации. | 1: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. |
| IsHidden | Значение столбца создано системой. Соответствует sys.columns.is_hidden |
Область применения: SQL Server 2016 (13.x) и более поздних версий. 0: не скрытый 1: скрытый |
| IsIdentity | Столбец использует свойство IDENTITY. | 1: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. |
| IsIdNotForRepl | Столбец проверяет настройку IDENTITY_INSERT. | 1: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. |
| IsIndexable | Столбцы не могут быть индексированы. | 1: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. |
| IsOutParam | Параметр процедуры является выходным параметром. | 1: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. |
| IsPrecise | Точный столбец. Это свойство применимо только к детерминированным столбцам. | 1: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. Недетерминированный столбец |
| IsRowGuidCol | Столбец имеет тип данных uniqueidentifier и определяется вместе со свойством ROWGUIDCOL. | 1: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. |
| IsSparse | Столбец является разреженным столбцом. Дополнительные сведения см. в статье Использование разреженных столбцов. | 1: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. |
| IsSystemVerified | Ядро СУБД может проверить детерминированные и точные свойства столбца. Это свойство применимо только к вычисляемым столбцам и столбцам представлений. | 1: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. |
| IsXmlIndexable | XML-столбец может быть использован в XML-индексе. | 1: ПРАВДА 0: ЛОЖЬ NULL: недопустимые входные данные. |
| Точность | Длина типа данных столбца или параметра. | Длина заданного типа данных столбца -1: xml или типы больших значений NULL: недопустимые входные данные. |
| Масштабировать | Масштаб для типа данных столбца или параметра. | Значение масштаба NULL: недопустимые входные данные. |
| StatisticalSemantics | Столбец доступен для семантического индексирования. | 1: ПРАВДА 0: ЛОЖЬ |
| SystemDataAccess | Столбец является производным от функции, которая обращается к данным в системных каталогах или таблицах виртуальной системы SQL Server. Это свойство применимо только к вычисляемым столбцам и столбцам представлений. | 1: TRUE (обозначает доступ только для чтения) 0: ЛОЖЬ NULL: недопустимые входные данные. |
| UserDataAccess | Столбец является производным от функции, которая обращается к данным в пользовательских таблицах, включая представления и временные таблицы, хранящиеся в локальном экземпляре SQL Server. Это свойство применимо только к вычисляемым столбцам и столбцам представлений. | 1: TRUE (обозначает доступ только для чтения) 0: ЛОЖЬ NULL: недопустимые входные данные. |
| UsesAnsiTrim | ANSI_PADDING было задано во время создания таблицы. Это свойство применимо только к столбцам или параметрам типа char или varchar. | 1: ПРАВДА 0: ЛОЖЬ 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)
ТИПОВОЕ СВОЙСТВО (Transact-SQL)