sys.system_columns (Transact-SQL)

适用于:Microsoft Fabric Microsoft Fabric Warehouse 中的 SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics 终结点

具有列的系统对象的每列都对应一行。

列名称 数据类型 说明
object_id int 此列所属对象的 ID。
name sysname 列的名称。 在对象中是唯一的。
column_id int 列的 ID。 在对象中是唯一的。

列 ID 可以不按顺序排列。
system_type_id tinyint 列的系统类型的 ID。
user_type_id int 用户定义的列类型的 ID。

若要返回类型的名称,请联接此列上的 sys.types 目录视图。
max_length smallint 列的最大长度(以字节为单位)。

-1 = 列数据类型是 varchar(max)、nvarchar(max)、varbinary(max) 或 xml。

对于文本列,max_length 值将是 16 或是由 sp_tableoption“text in row”设置的值。
精度 tinyint 如果基于数值,则为该列的精度;否则为 0。
scale tinyint 如果列包含的是数值,则为列的小数位数;否则为 0。
collation_name sysname 如果基于字符,则列的排序规则的名称;否则为 NULL。
is_nullable bit 1 = 列可为空。
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 存储。
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 架构命名空间的集合的 ID。

0 = 没有 XML 架构集合。
default_object_id int 默认对象的 ID,无论该对象是独立的 sys.sp_bindefault 还是内联的列级 DEFAULT 约束。 内联列级默认对象的 parent_object_id 列是返回到表本身的引用。 或者,如果没有默认值,则其值为 0。
rule_object_id int 使用 sys.sp_bindrule 绑定到列的独立规则的 ID

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 Server 2022 (16.x) 及更高版本、SQL 数据库

AS_TRANSACTION_ID_START
AS_TRANSACTION_ID_END
AS_SEQUENCE_NUMBER_START
AS_SEQUENCE_NUMBER_END
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

权限

目录视图中仅显示用户拥有的安全对象的元数据,或用户对其拥有某些权限的安全对象的元数据。 有关详细信息,请参阅 Metadata Visibility Configuration

另请参阅

对象目录视图 (Transact-SQL)
目录视图 (Transact-SQL)
查询 SQL Server 系统目录常见问题
sys.columns (Transact-SQL)
sys.all_columns (Transact-SQL)
sys.computed_columns (Transact-SQL)