SQL数据库中常用的几个系统表
1、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 = 扩展存储过程
该表中包含该数据库中的所有对象,如有那些表 存储过程 视图 等信息
2、sysColumns 数据库字段表。 当前数据库的所有字段都保留在里面。
重要字段解释:
sysColumns (
name sysname, --字段名称
id int, --该字段所属的表的ID
xtype tinyInt, --该字段类型,关联sysTypes表
length smallint, --该字段物理存储长度
...
)
比如要查询某一个张表的有那些字段和这些字段的长度
3、sysUsers
当前数据库的系统组,以及用户。
sysUsers(
uid smallint, --用户id
name smallint , --名称
uid varbinary(85) , --属于一个登陆
....
)
对数据库的用户进行管理
4、sysdenpends
当前数据库的依赖关系。 比如 我要修改某一张的结构时,怕修改后会影响到其它的视图 函数 存储过程 ,这是在修改之前可以查询一下.那些视图 函数 存储过程调用了这个表的
这样在修改后就可以修改的视图 函数 存储过程,
一般程序员用到的系统表,基本也就这几个 其他的特殊的系统表(主要都在master 或者 tempdb )里面了