sys.columns (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии) ДаБаза данных SQL Azure ДаУправляемый экземпляр SQL Azure даAzure Synapse Analytics даПараллельное хранилище данных

Возвращает строку для каждого столбца объекта, имеющего столбцы, например представления или таблицы. Далее следует список типов объектов, имеющих столбцы:

  • возвращающие табличное значение функции сборки (FT);

  • встроенные возвращающие табличное значение функции SQL (IF);

  • внутренние таблицы (IT);

  • системные таблицы (S);

  • возвращающие табличное значение функции SQL (TF);

  • пользовательские таблицы (U);

  • представления (V).

Имя столбца Тип данных Описание
object_id int Идентификатор объекта, которому принадлежит этот столбец.
name sysname Имя столбца. Уникален в пределах объекта.
column_id int Идентификатор столбца. Уникален в пределах объекта.

Идентификаторы столбца могут быть непоследовательными.
system_type_id tinyint Идентификатор системного типа столбца.
user_type_id int Идентификатор определенного пользователем типа столбца.

Чтобы вернуть имя типа, присоединитесь к представлению каталога sys. types в этом столбце.
max_length smallint Максимальная длина столбца (в байтах).

-1 = тип данных столбца — varchar (max), nvarchar (max), varbinary (max) или XML.

Для столбцов типа Text, ntext и Image значение max_length будет равно 16 (только 16-байтный указатель) или значение, заданное параметром sp_tableoption "текст в строке".
точность tinyint Точность столбца, если он является числовым; в противном случае — 0.
scale tinyint Масштаб значений столбца в случае числового выражения; в противном случае — 0.
collation_name sysname Имя параметров сортировки столбца, если он основан на символах; в противном случае — значение NULL .
is_nullable bit 1 = столбец может принимать значение NULL.
is_ansi_padded bit 1 = столбец использует поведение ANSI_PADDING ON, если имеет тип данных character, binary или variant.

0 = столбец имеет тип данных, отличный от character, binary или variant.
is_rowguidcol bit 1 = столбец объявлен как ROWGUIDCOL.
is_identity bit 1 = столбец содержит значения идентификаторов.
is_computed bit 1 = столбец является вычисляемым.
is_filestream bit 1 — столбец является столбцом FILESTREAM.
is_replicated bit 1 = столбец реплицирован.
is_non_sql_subscribed bit 1 = у столбца есть подписчик, отличный от подписчика SQL Server.
is_merge_published bit 1 = столбец публикуется слиянием.
is_dts_replicated bit 1 = столбец реплицируется с помощью служб Integration Services.
is_xml_document bit 1 = содержимое является готовым XML-документом.

0 = содержимое является фрагментом документа, либо тип данных столбца не является XML.
xml_collection_id int Ненулевое значение, если тип данных столбца — XML , а XML-код типизирован. Значением будет идентификатор коллекции, содержащей пространство имен для проверки схем XML столбца.

0 = нет коллекции схем XML.
default_object_id int Идентификатор объекта по умолчанию, независимо от того, является ли он изолированным объектом sys.sp_bindefaultили встроенным ограничением по умолчанию на уровне столбцов. Столбец parent_object_id встроенного объекта «значение по умолчанию» уровня столбца представляет собой ссылку на саму таблицу.

0 = значение по умолчанию отсутствует.
rule_object_id int Идентификатор изолированного правила, привязанного к столбцу с помощью процедуры sys.sp_bindrule.

0 = изолированное правило отсутствует. сведения об ограничениях check на уровне столбцов см. в разделе sys.check_constraints (Transact-SQL).
is_sparse bit 1 = столбец является разреженным. Дополнительные сведения см. в статье Использование разреженных столбцов.
is_column_set bit 1 = столбец является набором столбцов. Дополнительные сведения см. в статье Использование разреженных столбцов.
generated_always_type tinyint Применимо к: SQL Server 2016 (13.x); и выше, База данных SQL. 7, 8, 9, 10 применяются только к База данных SQL .

Определяет, когда создается значение столбца (для столбцов в системных таблицах всегда будет равно 0):

0 = NOT_APPLICABLE
1 = AS_ROW_START
2 = AS_ROW_END
7 = AS_TRANSACTION_ID_START
8 = AS_TRANSACTION_ID_END
9 = AS_SEQUENCE_NUMBER_START
10 = AS_SEQUENCE_NUMBER_END

Дополнительные сведения см. в разделе временные таблицы (реляционные базы данных).
generated_always_type_desc nvarchar(60) Применимо к: SQL Server 2016 (13.x); и выше, База данных SQL.

Текстовое описание generated_always_type значения (всегда NOT_APPLICABLE для столбцов в системных таблицах)

NOT_APPLICABLE
AS_ROW_START
AS_ROW_END

Область применения: База данных SQL

AS_TRANSACTION_ID_START
AS_TRANSACTION_ID_END
AS_SEQUENCE_NUMBER_START
AS_SEQUENCE_NUMBER_END
encryption_type int Применимо к: SQL Server 2016 (13.x); и выше, База данных SQL.

Тип шифрования:

1 = детерминированное шифрование

2 = случайное шифрование
encryption_type_desc nvarchar (64) Применимо к: SQL Server 2016 (13.x); и выше, База данных SQL.

Описание типа шифрования:

СЛУЧАЙНОГО

DETERMINISTIC
encryption_algorithm_name sysname Применимо к: SQL Server 2016 (13.x); и выше, База данных SQL.

Имя алгоритма шифрования.

Поддерживается только AEAD_AES_256_CBC_HMAC_SHA_512.
column_encryption_key_id int Применимо к: SQL Server 2016 (13.x); и выше, База данных SQL.

Идентификатор CEK.
column_encryption_key_database_name sysname Применимо к: SQL Server 2016 (13.x); и выше, База данных SQL.

Имя базы данных, в которой существует ключ шифрования столбца, если он отличается от базы данных столбца. NULL значение, если ключ существует в той же базе данных, что и столбец.
is_hidden bit Применимо к: SQL Server 2019 (15.x) и выше, База данных SQL.

Указывает, скрыт ли столбец:

0 = обычный, не скрытый, видимый столбец

1 = скрытый столбец
is_masked bit Применимо к: SQL Server 2019 (15.x) и выше, База данных SQL.

Указывает, скрывается ли столбец с помощью динамического маскирования данных:

0 = обычный столбец без маскирования

1 = столбец маскирован
graph_type int Внутренний столбец с набором значений. Значения находятся в диапазоне от 1-8 для столбцов графа и NULL для других.
graph_type_desc nvarchar(60) внутренний столбец с набором значений
is_data_deletion_filter_column bit применимо к: База данных SQL Azure границе. Указывает, является ли столбец столбцом фильтра хранения данных для таблицы.
ledger_view_column_type tinyint Применимо к: База данных SQL.

Если значение не равно NULL, указывает тип столбца в представлении главной книги:

1 = TRANSACTION_ID
2 = SEQUENCE_NUMBER
3 = OPERATION_TYPE
4 = OPERATION_TYPE_DESC

дополнительные сведения о книге базы данных см. в разделе База данных SQL Azureная книга.
ledger_view_column_type_desc nvarchar(60) Применимо к: База данных SQL.

Если значение не равно NULL, содержит текстовое описание типа столбца в представлении "Главная книга":

TRANSACTION_ID
SEQUENCE_NUMBER
OPERATION_TYPE
OPERATION_TYPE_DESC

Разрешения

Видимость метаданных в представлениях каталогов ограничивается защищаемыми объектами, которыми пользователь владеет или на которые ему были предоставлены разрешения. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

См. также:

системные представления (Transact-SQL)
Представления каталога объектов (Transact-SQL)
Представления каталога (Transact-SQL)
запросы к системному каталогу SQL Server вопросы и ответы
sys.all_columns (Transact-SQL)
sys.system_columns (Transact-SQL)