查询数据库的所有列信息 sys.all_columns

Posted Niko12230

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询数据库的所有列信息 sys.all_columns相关的知识,希望对你有一定的参考价值。

一、Database.sys.tables

为每个表对象返回一行,当前仅用于 sys.objects.type = U 的表对象。

列名 数据类型 说明
<继承的列>   有关此视图所继承列的列表,请参阅sys.objects (Transact-SQL)。
lob_data_space_id int 一个非零值,是保存此表的 text、ntext 和 image 数据的磁盘空间(文件组或分区架构)的 ID。
0 = 表不包含 text、ntext 或 image 数据。
filestream_data_space_id int 是 FILESTREAM 文件组或包含 FILESTREAM 文件组的分区方案的数据空间 ID。
若要报告 FILESTREAM 文件组的名称,请执行查询 SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tables
sys.tables 可以按 filestream_data_space_id = data_space_id 与下列视图联接。
 
sys.filegroups
sys.partition_schemes
sys.indexes
sys.allocation_units
sys.fulltext_catalogs
sys.data_spaces
sys.destination_data_spaces
sys.master_files
sys.database_files
backupfilegroup(按 filegroup_id 联接)
max_column_id_used int 此表曾使用的最大列 ID。
lock_on_bulk_load bit 表被锁定于大容量加载。有关详细信息,请参阅 sp_tableoption (Transact-SQL)。
uses_ansi_nulls bit 创建表时,SET ANSI_NULLS 数据库选项设置为 ON。
is_replicated bit 1 = 使用快照复制或事务复制发布表。
has_replication_filter bit 1 = 表具有复制筛选器。
is_merge_published bit 1 = 使用合并复制发布表。
is_sync_tran_subscribed bit 1 = 使用立即更新订阅来订阅表。
has_unchecked_assembly_data bit 1 = 表包含的持久化数据依赖于上次 ALTER ASSEMBLY 期间其定义发生更改的程序集。在下一次成功执行 DBCC CHECKDB 或 DBCC CHECKTABLE 后将重置为 0。
text_in_row_limit int Text in row 的最大允许字节数。
0 = 未设置 Text in row 选项。有关详细信息,请参阅 sp_tableoption (Transact-SQL)。
large_value_types_out_of_row bit 1 = 超行存储大值类型。有关详细信息,请参阅 sp_tableoption (Transact-SQL)。
is_tracked_by_cdc bit 1 = 为表启用变更数据捕获。有关详细信息,请参阅 sys.sp_cdc_enable_table (Transact-SQL)。
lock_escalation tinyint 表的 LOCK_ESCALATION 选项的值如下:
0 = TABLE
1 = DISABLE
2 = AUTO
lock_escalation_desc nvarchar(60) 表的 lock_escalation 选项的文本说明。可能的值有:TABLE、DISABLE 和 AUTO。

 

二、Database.sys.tables

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

列名 数据类型 说明
object_id int 此列所属对象的 ID。
name sysname 列的名称。  在对象中是唯一的。 
column_id int 列的 ID。  在对象中是唯一的。 
列 ID 可以不按顺序排列。
system_type_id tinyint 列的系统类型 ID。
user_type_id int 用户定义的列类型的 ID。
sys.types catalog view on this column.‘ data-guid="b0b47381e6de7b9b4c9a2d8419e6e4da">若要返回该类型的名称,请在该列中联接到 sys.types 目录视图。
max_length smallint 列的最大长度(字节)。
varchar(max), nvarchar(max), varbinary(max), or xml." data-guid="0c77804b7dd62539ef8a07509467c2a2">-1 = 列数据类型为varchar(max)nvarchar(max)varbinary(max)xml
text columns, the max_length value will be 16 or the value set by sp_tableoption ‘text in row‘." data-guid="98d994a86bf9798d86ac9709e4af7160">对于 text 列,max_length 值为 16 或 sp_tableoption ‘text in row‘ 设置的值。
precision 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。
以上是关于查询数据库的所有列信息 sys.all_columns的主要内容,如果未能解决你的问题,请参考以下文章

sql server 2008不用查询语句怎样查看新建的表的信息?像2000中的企业管理器中有个返回所有列一样

sql 分组后查询最大所有列信息

如何在sqlserver中获取表的所有列信息

MySQL:创建求和列的查询,同时从其他表中收集信息

python进行数据库查询中怎么把结果提取出来,跪谢

关于列族数量的大表设计和查询

(c)2006-2024 SYSTEM All Rights Reserved IT常识