sys.system_columns (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (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。 对于文本列,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)