sys.all_columns (Transact-SQL)

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

显示属于用户定义对象和系统对象的所有列的联合。

列名称 数据类型 说明
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。

对于 text 列,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.system_columns (Transact-SQL)
sys.computed_columns (Transact-SQL)