sys.all_columns (Transact-SQL)

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

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

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