首页 > 代码库 > 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 中的系统表