sqlserver 中 sys.columns 与 sys.all_columns 的区别?

按照msdn的解释:
sys.all_columns --显示属于用户定义对象和系统对象的所有列的联合。
sys.columns --为包含列的对象(如视图或表)的每一列返回一行。
下面是包含列的对象类型的列表。
表值程序集函数 (FT)
内联表值 SQL 函数 (IF)
内部表 (IT)
系统表 (S)
表值 SQL 函数 (TF)
用户表 (U)
视图 (V)
----我用select count(*) 查询我的数据库后,
sys.all_columns 为 1w 多,
sys.columns 为 2k 多
请问为什么?

syscolumns是sqlserver中的一个系统表,用来记录sqlserver中字段信息的。
SQLServer中SYSCOLUMNS表的各个字段的意义
列名 数据类型 描述
name sysname 列名或过程参数的名称。
id int 该列所属的表对象 ID,或与该参数关联的存储过程 ID。
xtype tinyint systypes 中的物理存储类型。
typestat tinyint 仅限内部使用。
xusertype smallint 扩展的用户定义数据类型 ID。
length smallint systypes 中的最大物理存储长度。
xprec tinyint 仅限内部使用。
xscale tinyint 仅限内部使用。
colid smallint 列或参数 ID。
xoffset smallint 仅限内部使用。
bITpos tinyint 仅限内部使用。
reserved tinyint 仅限内部使用。
colstat smallint 仅限内部使用。
cdefault int 该列的默认值 ID。
domain int 该列的规则或 CHECK 约束 ID。
number smallint 过程分组时(0 表示非过程项)的子过程号。
colorder smallint 仅限内部使用。
autoval varbinary(255) 仅限内部使用。
offset smallint 该列所在行的偏移量;如果为负,表示可变长度行。
status tinyint 用于描述列或参数属性的位图: 0x08 = 列允许空值。 0x10 = 当添加 varchar 或 varbinary 列时,ANSI 填充生效。追问

谢谢回复, 麻烦分析下sys.columns 与 sys.all_columns 的区别, 再次谢谢.

温馨提示:答案为网友推荐,仅供参考
相似回答