sys.columns (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в 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.Для столбцов текста, ntext и изображений значение равно 16 (представляющее только указатель 16-байтов) или значение, заданное по значениюsp_tableoption 'text in row' . max_length |
precision |
tinyint | Точность столбца, если числовое значение; 0 в противном случае . |
scale |
tinyint | Масштабирование столбца, если числовое значение; 0 в противном случае . |
collation_name |
sysname | Имя параметров сортировки столбца, если он символьный; в противном случае — значение NULL . |
is_nullable |
bit | 1 = столбец имеет значение NULL0 = столбец не допускает значение NULL |
is_ansi_padded |
bit | 1 = столбец использует ANSI_PADDING ON поведение, если символ, двоичный или вариант0 = столбец не является символом, двоичным или вариантом |
is_rowguidcol |
bit | 1 = столбец объявлен ROWGUIDCOL |
is_identity |
bit | 1 = столбец имеет значения идентификаторов |
is_computed |
bit | 1 = столбец — вычисляемый столбец |
is_filestream |
bit | 1 = столбец FILESTREAM — это столбец FILESTREAM |
is_replicated |
bit | 1 = реплицируется столбец |
is_non_sql_subscribed |
bit | 1 = Столбец имеет подписчик, отличный от SQL Server |
is_merge_published |
bit | 1 = столбец опубликован слиянием |
is_dts_replicated |
bit | 1 = столбец реплицируется с помощью служб SSIS |
is_xml_document |
bit | 1 = содержимое — полный XML-документ0 = содержимое является фрагментом документа, или тип данных столбца не является xml |
xml_collection_id |
int | Ненулевое значение, если тип столбца — xml, а XML типизирован. Значением является идентификатор коллекции, содержащей проверяющее пространство имен схемы XML столбца.0 = нет коллекции схем XML |
default_object_id |
int | Идентификатор объекта по умолчанию независимо от того, является ли он автономным объектом sp_bindefault или встроенным ограничением на уровне DEFAULT столбцов. Столбец parent_object_id встроенного объекта "значение по умолчанию" уровня столбца представляет собой ссылку на саму таблицу.0 = нет по умолчанию |
rule_object_id |
int | Идентификатор автономного правила, привязанного к столбцу, с помощью sys.sp_bindrule. 0 = нет автономного правила. Ограничения на уровне CHECK столбцов см. в sys.check_constraints. |
is_sparse |
bit | 1 = столбец является разреженным столбцом. Дополнительные сведения см. в разделе "Использование разреженных столбцов". |
is_column_set |
bit | 1 = столбец — это набор столбцов. Дополнительные сведения см. в разделе "Использование разреженных столбцов". |
generated_always_type |
tinyint | Определяет, когда создается значение столбца (всегда 0 используется для столбцов в системных таблицах).Область применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL. 0 = NOT_APPLICABLE 1 = AS_ROW_START 2 = AS_ROW_END Область применения: SQL Server 2022 (16.x) и более поздних версий и База данных SQL. 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) | Текстовое описание generated_always_type значения (всегда NOT_APPLICABLE для столбцов в системных таблицах)Область применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL. 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 | Тип шифрования:1 = детерминированное шифрование2 = случайное шифрованиеОбласть применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL |
encryption_type_desc |
nvarchar(64) | Описание типа шифрования:RANDOMIZED DETERMINISTIC Область применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL |
encryption_algorithm_name |
sysname | Имя алгоритма шифрования. Поддерживается только AEAD_AES_256_CBC_HMAC_SHA_512 .Область применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL |
column_encryption_key_id |
int | Идентификатор ключа шифрования столбца (CEK). Область применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL |
column_encryption_key_database_name |
sysname | Имя базы данных, в которой существует ключ шифрования столбца, если отличается от базы данных столбца. NULL , если ключ существует в той же базе данных, что и столбец.Область применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL |
is_hidden |
bit | Указывает, если столбец скрыт:0 = обычный, не скрытый, видимый столбец1 = скрытый столбецОбласть применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL |
is_masked |
bit | Указывает, маскируется ли столбец динамическим маскированием данных:0 = обычный, не маскированные столбцы1 = столбец маскируетсяОбласть применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL |
graph_type |
int | Внутренний столбец с набором значений. Значения находятся между 1 столбцами графа и 8 NULL другими. |
graph_type_desc |
nvarchar(60) | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
is_data_deletion_filter_column |
bit | Указывает, является ли столбец столбцом фильтра хранения данных для таблицы. Область применения: SQL Azure для пограничных вычислений |
ledger_view_column_type |
int | Если нет NULL , указывает тип столбца в представлении реестра:1 = TRANSACTION_ID 2 = SEQUENCE_NUMBER 3 = OPERATION_TYPE 4 = OPERATION_TYPE_DESC Дополнительные сведения см. в обзоре реестра. Область применения: SQL Server 2022 (16.x) и более поздних версий и База данных SQL |
ledger_view_column_type_desc |
nvarchar(60) | Если нет NULL , содержит текстовое описание типа столбца в представлении реестра:TRANSACTION_ID SEQUENCE_NUMBER OPERATION_TYPE OPERATION_TYPE_DESC Область применения: SQL Server 2022 (16.x) и более поздних версий и База данных SQL |
is_dropped_ledger_column |
bit | Указывает столбец таблицы реестра, который был удален. Область применения: SQL Server 2022 (16.x) и более поздних версий и База данных SQL |
Разрешения
Видимость метаданных в представлениях каталога ограничена защищаемыми объектами, которыми владеет пользователь или которым пользователь получил некоторое разрешение. Дополнительные сведения см. в разделе Metadata Visibility Configuration.
Примеры использования
Получение сведений о столбце для таблицы
Чтобы получить метаданные для столбцов в таблице, можно использовать следующий код:
CREATE TABLE dbo.[sample] (
id INT NOT NULL
,col1 VARBINARY(10) NULL
)
GO
SELECT c.[name] AS column_name
,t.[name] AS [type_name]
,c.[max_length]
,c.[precision]
,c.[scale]
FROM sys.columns c
INNER JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE object_id = object_id('dbo.sample');