sys.columns (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики аналитики Synapse Analytics Analytics (PDW)SQL Analyticsв Microsoft FabricХранилище в Microsoft Fabric

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

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

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

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

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

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

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

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

Имя столбца Тип данных Description
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 "text in row".
точность 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 (SSIS).
is_xml_document bit 1 = содержимое является готовым XML-документом.

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

0 = нет коллекции схем XML.
default_object_id int Идентификатор объекта "значение по умолчанию" не зависит от того, является ли объект автономным объектом sys.sp_bindefault или встроенным ограничением DEFAULT уровня столбца. Столбец 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. 5, 6, 7, 8 применяются только к Базе данных SQL.

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

0 = NOT_APPLICABLE
1 = AS_ROW_START
2 = AS_ROW_END
5 = AS_TRANSACTION_ID_START
6 = AS_TRANSACTION_ID_END
7 = AS_SEQUENCE_NUMBER_START
8 = 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 Server 2022 (16.x), База данных 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.

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

RANDOMIZED

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 2016 (13.x) и более поздних версий База данных SQL.

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

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

1  = скрытый столбец.
is_masked bit Область применения: SQL Server 2016 (13.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 Server 2022 (16.x), База данных SQL.

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

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

Дополнительные сведения о реестре базы данных см. в статье Реестр.
ledger_view_column_type_desc nvarchar(60) Применимо: начиная с SQL Server 2022 (16.x), База данных SQL.

Если значение не равно NULL, содержит текстовое описание типа столбца в представлении реестра.

TRANSACTION_ID
SEQUENCE_NUMBER
OPERATION_TYPE
OPERATION_TYPE_DESC
is_dropped_ledger_table_column bit Применимо: начиная с SQL Server 2022 (16.x), База данных SQL.

Указывает столбец таблицы реестра, который был удален.

Разрешения

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

См. также

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