SQL server

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')
上一篇下一篇

猜你喜欢

热点阅读