SQLserver 中的系统表 systypes,sysobj
2020-02-09 本文已影响0人
赵研宇
一、systypes
系统对象表。保存当前数据库中的所有数据类型,包含系统提供数据类型和用户定义数据类型
systypes 常用字段说明:
systypes(
Name sysnmae --类型名称
,xtype inyint --物理存储类型
,xusertype smallint --扩展用户类型
,length smallint --数据类型的物理存储长度。
)
二、sysobjects
系统对象表。 保存当前数据库的对象,如约束、默认值、日志、规则、存储过程等
sysobjects 常用字段说明:
sysObjects (
Name sysname --object 名称
,id int --object id
,xtype char(2) -- object 类型
,type char(2) -- object 类型(与xtype 相同)
,uid smallint --object 所有者的ID
)
注:需要解释的是 xtype 和type 是一模一样的,他的数据为:
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
FN = 标量函数
IF = 内嵌表函数
K = PRIMARY KEY 或 UNIQUE 约束
L = 日志
P = 存储过程
R = 规则
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
V = 视图
X = 扩展存储过程
三、sysolumns
当前数据库的所有字段都保留在里面。
常用字段说明:
sysColumns (
name sysname --字段名称
,id int --该字段所属的表的ID
,xtype tinyInt --该字段类型,关联sysTypes表
,length smallint --该字段物理存储长度
)
四、常用查询
1.查询当前数据库中的所有数据类型
select * from systypes;
2、查看所有表名:
select name from sysobjects where type='U'
3、查询表的所有字段名:
Select name from syscolumns Where ID=OBJECT_ID('表名')
五、SQL中object_id函数的用法
int object_id('objectname');
此方法返回数据库对象标识号。
其中,参数objectname 表示要使用的对象,其数据类型为nchar或char(如果为char,系统将其转换为nchar)
返回类型为int,表示该对象在系统中的编号。
比如:
use wf_timesheet
select object_id('usp_check_excess_hours')