首页 > 代码库 > SQL Server 中的系统表
SQL Server 中的系统表
存储SQL所有的系统信息。存储有关数据库服务中的元数据所谓元数据即(比如数据服务器有哪些用户数据库、数据库服务器有哪些登陆账号,数据库中都有哪些表,每个表都有哪些字段 每个数据库有哪些存储过程、视图等等的数据),系统表一般sys开头。
任何用户都不应直接更改系统表。 例如,不要尝试使用 DELETE、UPDATE、INSERT 语句或用户定义的触发器修改系统表。
若要检索存储在系统表中的信息,应用程序应使用下列组件之一:
系统存储过程
Transact-SQL 语句和函数
SQL Server 管理对象 (SMO)
复制管理对象 (RMO)
数据库 API 目录函数
几个重要的系统表
一、master.dbo.sysdatabases系统表:
Microsoft SQL Server 上的每个数据库在表中占一行。
最初安装 SQL Server 时,sysdatabases 包含 master、model、msdb、mssqlweb 和 tempdb 数据库的项。
关键字段:
name :库的名字;
dbid :库的ID,dbid从1到5是系统的。分别是:master、model、msdb、mssqlweb、tempdb 这五个库。
select * from master.dbo.sysdatabases 就可以查询出所有的库名。
二、Sysobjects:(以前的博客有对此表的介绍)
SQL-SERVER的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束、默认值、日志、规则、存储过程等。
关键字段
Name:对象名称
id:对象ID
xtype(type):对象类型
uid:所有者对象用户id
status:对象状态。
对象类型(xtype)。可以是下列对象类型中的一种:
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程
当xtype=‘U‘ and status>0代表是用户建立的表,对象名就是表名,对象ID就是表的ID值(object_id(‘表名’))。
select * fromwyl_db.dbo.sysobjects where xtype=‘U‘ and status>0 就可以列出库wyl_db中所有的用户建立的表名。
三、syscolumns :
每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。该表位于每个数据库中。
关键字段有:
name :字段名称
id:表的id号
colid :字段id号。
其中的 ID 是 刚上我们用sysobjects得到的表的ID号。
select name fromwyl_db.dbo.syscolumns where id=object_id(‘表名‘): 获得wyl_db.dbo.syscolumns某个表中的字段
其他系统表
sysaltfiles 保存数据库的文件
syscharsets 字符集与排序顺序
sysconfigures 配置选项
syscurconfigs 当前配置选项
syslanguages 语言
syslogins 登陆帐号信息
sysoledbusers 链接服务器登陆信息
sysprocesses 进程
sysremotelogins 远程登录帐号
sysconstrains 限制
sysfilegroups 文件组
sysfiles 文件
sysforeignkeys 外部关键字
sysindexs 索引
sysmenbers 角色成员
syspermissions 权限
systypes 用户定义数据类型
sysusers 用户
SQL Server 中的系统表