sys.columns (Transact-SQL)sys.columns (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure даAzure Synapse Analytics (хранилище данных SQL) даParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Возвращает строку для каждого столбца объекта, имеющего столбцы, например представления или таблицы.Returns a row for each column of an object that has columns, such as views or tables. Далее следует список типов объектов, имеющих столбцы:The following is a list of object types that have columns:

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

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

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

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

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

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

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

Имя столбцаColumn name Тип данныхData type DescriptionDescription
object_idobject_id intint Идентификатор объекта, которому принадлежит этот столбец.ID of the object to which this column belongs.
namename имеет sysnamesysname Имя столбца.Name of the column. Уникален в пределах объекта.Is unique within the object.
column_idcolumn_id intint Идентификатор столбца.ID of the column. Уникален в пределах объекта.Is unique within the object.

Идентификаторы столбца могут быть непоследовательными.Column IDs might not be sequential.
system_type_idsystem_type_id tinyinttinyint Идентификатор системного типа столбца.ID of the system type of the column.
user_type_iduser_type_id intint Идентификатор определенного пользователем типа столбца.ID of the type of the column as defined by the user.

Чтобы вернуть имя типа, присоединитесь к представлению каталога sys. types в этом столбце.To return the name of the type, join to the sys.types catalog view on this column.
max_lengthmax_length smallintsmallint Максимальная длина столбца (в байтах).Maximum length (in bytes) of the column.

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

Для текстовых столбцов значение max_length будет равно 16, а значение задается sp_tableoption "text in row".For text columns, the max_length value will be 16 or the value set by sp_tableoption 'text in row'.
precisionprecision tinyinttinyint Точность столбца, если он является числовым; в противном случае — 0.Precision of the column if numeric-based; otherwise, 0.
scalescale tinyinttinyint Масштаб значений столбца в случае числового выражения; в противном случае — 0.Scale of column if numeric-based; otherwise, 0.
collation_namecollation_name имеет sysnamesysname Имя параметров сортировки столбца, если он символьный; в противном случае — значение NULL.Name of the collation of the column if character-based; otherwise, NULL.
is_nullableis_nullable bitbit 1 = столбец может принимать значение NULL.1 = Column is nullable.
is_ansi_paddedis_ansi_padded bitbit 1 = столбец использует поведение ANSI_PADDING ON, если имеет тип данных character, binary или variant.1 = Column uses ANSI_PADDING ON behavior if character, binary, or variant.

0 = столбец имеет тип данных, отличный от character, binary или variant.0 = Column is not character, binary, or variant.
is_rowguidcolis_rowguidcol bitbit 1 = столбец объявлен как ROWGUIDCOL.1 = Column is a declared ROWGUIDCOL.
is_identityis_identity bitbit 1 = столбец содержит значения идентификаторов.1 = Column has identity values
is_computedis_computed bitbit 1 = столбец является вычисляемым.1 = Column is a computed column.
is_filestreamis_filestream bitbit 1 — столбец является столбцом FILESTREAM.1 = Column is a FILESTREAM column.
is_replicatedis_replicated bitbit 1 = столбец реплицирован.1 = Column is replicated.
is_non_sql_subscribedis_non_sql_subscribed bitbit 1 = у столбца есть подписчик, отличный от подписчика SQL Server.1 = Column has a non-SQL Server subscriber.
is_merge_publishedis_merge_published bitbit 1 = столбец публикуется слиянием.1 = Column is merge-published.
is_dts_replicatedis_dts_replicated bitbit 1 = столбец реплицируется с помощью служб Integration ServicesSSIS.1 = Column is replicated by using Integration ServicesSSIS.
is_xml_documentis_xml_document bitbit 1 = содержимое является готовым XML-документом.1 = Content is a complete XML document.

0 = содержимое является фрагментом документа, либо тип данных столбца не является XML.0 = Content is a document fragment or the column data type is not xml.
xml_collection_idxml_collection_id intint Ненулевое значение, если тип данных столбца — XML , а XML-код типизирован.Nonzero if the data type of the column is xml and the XML is typed. Значением будет идентификатор коллекции, содержащей пространство имен для проверки схем XML столбца.The value will be the ID of the collection containing the validating XML schema namespace of the column.

0 = нет коллекции схем XML.0 = No XML schema collection.
default_object_iddefault_object_id intint Идентификатор объекта по умолчанию, независимо от того, является ли он изолированным объектом sys. sp_bindefaultили встроенным ограничением по умолчанию на уровне столбцов.ID of the default object, regardless of whether it is a stand-alone object sys.sp_bindefault, or an inline, column-level DEFAULT constraint. Столбец parent_object_id встроенного объекта «значение по умолчанию» уровня столбца представляет собой ссылку на саму таблицу.The parent_object_id column of an inline column-level default object is a reference back to the table itself.

0 = значение по умолчанию отсутствует.0 = No default.
rule_object_idrule_object_id intint Идентификатор изолированного правила, привязанного к столбцу с помощью процедуры sys.sp_bindrule.ID of the stand-alone rule bound to the column by using sys.sp_bindrule.

0 = изолированное правило отсутствует.0 = No stand-alone rule. Сведения об ограничениях проверки на уровне столбцов см. в разделе sys. check_constraints ()Transact-SQL .For column-level CHECK constraints, see sys.check_constraints (Transact-SQL).
is_sparseis_sparse bitbit 1 = столбец является разреженным.1 = Column is a sparse column. Дополнительные сведения см. в статье Использование разреженных столбцов.For more information, see Use Sparse Columns.
is_column_setis_column_set bitbit 1 = столбец является набором столбцов.1 = Column is a column set. Дополнительные сведения см. в статье Использование разреженных столбцов.For more information, see Use Sparse Columns.
generated_always_typegenerated_always_type tinyinttinyint Применимо к: SQL Server 2016 (13.x);SQL Server 2016 (13.x) и более База данных SQLSQL Databaseпоздним версиям.Applies to: SQL Server 2016 (13.x);SQL Server 2016 (13.x) and later, База данных SQLSQL Database.

Определяет, когда создается значение столбца (для столбцов в системных таблицах всегда будет равно 0):Identifies when the column value is generated (will always be 0 for columns in system tables):

0 = NOT_APPLICABLE0 = NOT_APPLICABLE

1 = AS_ROW_START1 = AS_ROW_START

2 = AS_ROW_END2 = AS_ROW_END

Дополнительные сведения см. в разделе временные таблицы (реляционные базы данных).For more information, see Temporal Tables (Relational databases).
generated_always_type_descgenerated_always_type_desc nvarchar (60)nvarchar(60) Применимо к: SQL Server 2016 (13.x);SQL Server 2016 (13.x) и более База данных SQLSQL Databaseпоздним версиям.Applies to: SQL Server 2016 (13.x);SQL Server 2016 (13.x) and later, База данных SQLSQL Database.

Текстовое описание generated_always_typeзначения (всегда NOT_APPLICABLE для столбцов в системных таблицах)Textual description of generated_always_type's value (always NOT_APPLICABLE for columns in system tables)

NOT_APPLICABLENOT_APPLICABLE

AS_ROW_STARTAS_ROW_START

AS_ROW_ENDAS_ROW_END
encryption_typeencryption_type intint Применимо к: SQL Server 2016 (13.x);SQL Server 2016 (13.x) и более База данных SQLSQL Databaseпоздним версиям.Applies to: SQL Server 2016 (13.x);SQL Server 2016 (13.x) and later, База данных SQLSQL Database.

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

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

2 = случайное шифрование2 = Randomized encryption
encryption_type_descencryption_type_desc nvarchar (64)nvarchar(64) Применимо к: SQL Server 2016 (13.x);SQL Server 2016 (13.x) и более База данных SQLSQL Databaseпоздним версиям.Applies to: SQL Server 2016 (13.x);SQL Server 2016 (13.x) and later, База данных SQLSQL Database.

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

СЛУЧАЙНОГОRANDOMIZED

DETERMINISTICDETERMINISTIC
encryption_algorithm_nameencryption_algorithm_name имеет sysnamesysname Применимо к: SQL Server 2016 (13.x);SQL Server 2016 (13.x) и более База данных SQLSQL Databaseпоздним версиям.Applies to: SQL Server 2016 (13.x);SQL Server 2016 (13.x) and later, База данных SQLSQL Database.

Имя алгоритма шифрования.Name of encryption algorithm.

Поддерживается только AEAD_AES_256_CBC_HMAC_SHA_512.Only AEAD_AES_256_CBC_HMAC_SHA_512 is supported.
column_encryption_key_idcolumn_encryption_key_id intint Применимо к: SQL Server 2016 (13.x);SQL Server 2016 (13.x) и более База данных SQLSQL Databaseпоздним версиям.Applies to: SQL Server 2016 (13.x);SQL Server 2016 (13.x) and later, База данных SQLSQL Database.

Идентификатор CEK.ID of the CEK.
column_encryption_key_database_namecolumn_encryption_key_database_name имеет sysnamesysname Применимо к: SQL Server 2016 (13.x);SQL Server 2016 (13.x) и более База данных SQLSQL Databaseпоздним версиям.Applies to: SQL Server 2016 (13.x);SQL Server 2016 (13.x) and later, База данных SQLSQL Database.

Имя базы данных, в которой существует ключ шифрования столбца, если он отличается от базы данных столбца.The name of the database where the column encryption key exists if different than the database of the column. Значение NULL, если ключ существует в той же базе данных, что и столбец.NULL if the key exists in the same database as the column.
is_hiddenis_hidden bitbit Применимо к: SQL Server 2019 (15.x)SQL Server 2019 (15.x) и более База данных SQLSQL Databaseпоздним версиям.Applies to: SQL Server 2019 (15.x)SQL Server 2019 (15.x) and later, База данных SQLSQL Database.

Указывает, скрыт ли столбец:Indicates if the column is hidden:

0 = обычный, не скрытый, видимый столбец0 = regular, not-hidden, visible column

1 = скрытый столбец1 = hidden column
is_maskedis_masked bitbit Применимо к: SQL Server 2019 (15.x)SQL Server 2019 (15.x) и более База данных SQLSQL Databaseпоздним версиям.Applies to: SQL Server 2019 (15.x)SQL Server 2019 (15.x) and later, База данных SQLSQL Database.

Указывает, скрывается ли столбец с помощью динамического маскирования данных:Indicates if the column is masked by a dynamic data masking:

0 = обычный столбец без маскирования0 = regular, not-masked column

1 = столбец маскирован1 = column is masked

РазрешенияPermissions

Видимость метаданных в представлениях каталогов ограничивается защищаемыми объектами, которыми пользователь владеет или на которые ему были предоставлены разрешения.The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission.Дополнительные сведения см. в разделе Настройка видимости метаданных.For more information, see Metadata Visibility Configuration.

См. также:See Also

Системные представления ()Transact-SQL System Views (Transact-SQL)
Представления каталога объектов ()Transact-SQL Object Catalog Views (Transact-SQL)
Представления каталога (Transact-SQL) Catalog Views (Transact-SQL)
Запросы к системному каталогу SQL Server вопросы и ответы Querying the SQL Server System Catalog FAQ
sys. all_columns (Transact-SQL) sys.all_columns (Transact-SQL)
sys. system_columns (Transact-SQL)sys.system_columns (Transact-SQL)