sql server系统表详细说明 之 sys.columns


为包含列的对象(如视图或表)的每一列返回一行。 下面是包含列的对象类型的列表。

  • 表值程序集函数 (FT)

  • 内联表值 SQL 函数 (IF)

  • 内部表 (IT)

  • 系统表 (S)

  • 表值 SQL 函数 (TF)

  • 用户表 (U)

  • 视图 (V)

 

列名称数据类型说明
object_idint此列所属对象的 ID。
namesysname列的名称。 在对象中是唯一的。
column_idint列的 ID。 在对象中是唯一的。

列 ID 可以不按顺序排列。
system_type_idtinyint列的系统类型的 ID。
user_type_idint用户定义的列类型的 ID。

若要返回类型的名称,请在此列上联接到 sys.databases 目录视图。
max_lengthsmallint列的最大长度(字节)。

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

对于 text 列,max_length 值将是16,或者是 sp_tableoption "text in row" 设置的值。
精准率tinyint如果基于数值,则为该列的精度;否则为 0。
scaletinyint如果基于数值,则为列的小数位数;否则为 0。
collation_namesysname如果基于字符,则为该列的排序规则的名称;否则为 NULL 。
is_nullablebit1 = 列可为空。
is_ansi_paddedbit1 = 如果列为字符、二进制或变量类型,则该列使用 ANSI_PADDING ON 行为。

0 = 列不是字符、二进制或变量类型。
is_rowguidcolbit1 = 列为声明的 ROWGUIDCOL。
is_identitybit1 = 列具有标识值
is_computedbit1 = 列为计算列。
is_filestreambit1 = 列为 FILESTREAM 列。
is_replicatedbit1 = 列已复制。
is_non_sql_subscribedbit1 = 列具有非 SQL Server 订阅服务器。
is_merge_publishedbit1 = 列已合并发布。
is_dts_replicatedbit1 = 使用 SSIS 复制列。
is_xml_documentbit1 = 内容为完整的 XML 文档。

0 = 内容是文档片段,或列的数据类型不是 xml
xml_collection_idint如果列的数据类型为 xml ,并且已键入 xml,则为非零值。 该值将为包含列的验证 XML 架构命名空间的集合的 ID。

0 = 没有 XML 架构集合。
default_object_idint默认对象的 ID,无论该对象是单独的对象 sys.sp_bindefault,还是内联列级默认约束。 内联列级默认对象的 parent_object_id 列是对该表本身的反引用。

0 = 无默认值。
rule_object_idint使用 sys.sp_bindrule 绑定到列的独立规则的 ID。

0 = 无独立规则。 有关列级检查约束,请参阅 (transact-sql)sys.check_constraints 
is_sparsebit1 = 列为稀疏列。 有关详细信息,请参阅 使用稀疏列
is_column_setbit1 = 列为列集。 有关详细信息,请参阅 使用稀疏列
generated_always_typetinyint适用于: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_descnvarchar(60)适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。

系统表中 generated_always_type 列的 (文本NOT_APPLICABLE始终)

NOT_APPLICABLE
AS_ROW_START
AS_ROW_END

适用于:SQL 数据库

AS_TRANSACTION_ID_START
AS_TRANSACTION_ID_END
AS_SEQUENCE_NUMBER_START
AS_SEQUENCE_NUMBER_END
encryption_typeint适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。

加密类型:

1 = 确定性加密

2 = 随机加密
encryption_type_descnvarchar (64)适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。

加密类型说明:

随机

DETERMINISTIC
encryption_algorithm_namesysname适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。

加密算法的名称。

仅AEAD_AES_256_CBC_HMAC_SHA_512支持。
column_encryption_key_idint适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。

CEK 的 ID。
column_encryption_key_database_namesysname适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。

列加密密钥与列的数据库不同时存在的数据库的名称。 NULL 如果该键存在于与列相同的数据库中,则为。
is_hiddenbit适用于:SQL Server 2019 (15.x) 及更高版本、SQL 数据库。

指示是否隐藏列:

0 = 常规、非隐藏、可见列

1 = 隐藏列
is_maskedbit适用于:SQL Server 2019 (15.x) 及更高版本、SQL 数据库。

指示是否由动态数据掩码屏蔽列:

0 = 常规、非掩码列

1 = 列被屏蔽
graph_typeint带有一组值的内部列。 对于 graph 列,值介于1-8 和其他值之间 NULL 。
graph_type_descnvarchar(60)带有一组值的内部列
ledger_view_column_typetinyint适用于: SQL 数据库。

如果不为 NULL,则表示分类帐视图中列的类型:

1 = TRANSACTION_ID
2 = SEQUENCE_NUMBER
3 = OPERATION_TYPE
4 = OPERATION_TYPE_DESC

有关数据库账本详细信息,请参阅 Azure SQL 数据库 账本
ledger_view_column_type_descnvarchar(60)适用于: SQL 数据库。

如果不为 NULL,则包含账本视图中列类型的文本说明:

TRANSACTION_ID
SEQUENCE_NUMBER
OPERATION_TYPE
OPERATION_TYPE_DESC
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YES开发框架
评论列表

发表评论

评论内容
昵称:
关联文章

sql server系统详细说明 sys.all_columns
sql server系统详细说明 sys.masked_columns
sql server系统详细说明 sys.columns
sql server系统详细说明 sys.system_columns
sql server系统详细说明 sys.computed_columns
sql server系统详细说明 sys.stats_columns
sql server系统详细说明 sys.tables
sql server系统详细说明 sys.system_objects
sql server系统详细说明 sys.system_views
sql server系统详细说明 sys.column_store_dictionaries
sql server系统详细说明 sys.objects
sql server系统详细说明 sys.stats
sql server系统详细说明 sys.parameters
sql server系统详细说明 sys.system_parameters
sql server系统详细说明 sys.column_store_row_groups
sql server系统详细说明 sys.column_store_segments
sql server系统详细说明 sys.sql_dependencies
sql server系统详细说明 sys.sql_modules
sql server系统详细说明 sys.default_constraints
sql server系统详细说明 sys.databases