sys.columns (Transact-SQL)
适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库
为包含列的对象(如视图或表)的每一列返回一行。 下面是包含列的对象类型的列表。
表值程序集函数 (FT)
内联表值 SQL 函数 (IF)
内部表 (IT)
系统表 (S)
表值 SQL 函数 (TF)
用户表 (U)
视图 (V)
列名称 | 数据类型 | 说明 |
---|---|---|
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、ntext 和 image 列,max_length 值将为 16(仅表示 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 数据库。 5、6、7、8 仅适用于 SQL 数据库。 标识生成列值的时间(系统表中的列将始终为 0): 0 = NOT_APPLICABLE 1 = AS_ROW_START 2 = AS_ROW_END 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) | 适用于: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 |
encryption_type | int | 适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。 加密类型: 1 = 确定性加密 2 = 随机加密 |
encryption_type_desc | nvarchar(64) | 适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。 加密类型说明: RANDOMIZED DETERMINISTIC |
encryption_algorithm_name | sysname | 适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。 加密算法的名称。 仅支持 AEAD_AES_256_CBC_HMAC_SHA_512。 |
column_encryption_key_id | int | 适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。 CEK 的 ID。 |
column_encryption_key_database_name | sysname | 适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。 列加密密钥所在数据库的名称(如果不在列所在的数据库中)。 NULL (如果密钥与列位于同一数据库中)。 |
is_hidden | bit | 适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。 指示列是否可以隐藏: 0 = 未隐藏的常规可见列 1 = 隐藏列 |
is_masked | bit | 适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。 指示列是否由动态数据掩码进行掩码处理: 0 = 不进行掩码处理的常规列 1 = 列进行掩码处理 |
graph_type | int | 具有一组值的内部列。 对于图形列,这些值介于 1-8 之间;对于其他列,为 NULL 。 |
graph_type_desc | nvarchar(60) | 具有一组值的内部列 |
is_data_deletion_filter_column | bit | 适用于:Azure SQL Edge。 指示列是否为表的数据保留筛选列。 |
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 |
is_dropped_ledger_table_column | bit | 适用于:SQL Server 2022 (16.x) 及更高版本、SQL 数据库。 指示已删除的账本表列。 |
权限
目录视图中元数据的可见性仅限于用户拥有的安全对象,或者向用户授予了某些权限的安全对象。 有关详细信息,请参阅 Metadata Visibility Configuration。
另请参阅
系统视图 (Transact-SQL)
对象目录视图 (Transact-SQL)
目录视图 (Transact-SQL)
查询 SQL Server 系统目录常见问题
sys.all_columns (Transact-SQL)
sys.system_columns (Transact-SQL)
反馈
https://aka.ms/ContentUserFeedback。
即将推出:在整个 2024 年,我们将逐步取消以“GitHub 问题”作为内容的反馈机制,并将其替换为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈