名称 | 地址 | 说明 |
---|---|---|
sysaltfiles | 主数据库 | 保存数据库的文件 |
syscharsets | 主数据库 | 字符集与排序顺序 |
sysconfigures | 主数据库 | 配置选项 |
syscurconfigs | 主数据库 | 当前配置选项 |
sysdatabases | 主数据库 | 服务器中的数据库 |
syslanguages | 主数据库 | 语言 |
syslogins | 主数据库 | 登陆帐号信息 |
sysoledbusers | 主数据库 | 链接服务器登陆信息 |
sysPRocesses | 主数据库 | 进程 |
sysremotelogins | 主数据库 | 远程登录帐号 |
syscolumns | 每个数据库 | 列 |
sysconstrains | 每个数据库 | 限制 |
sysfilegroups | 每个数据库 | 文件组 |
sysfiles | 每个数据库 | 文件 |
sysforeignkeys | 每个数据库 | 外部关键字 |
sysindexs | 每个数据库 | 索引 |
sysmembers | 每个数据库 | 角色成员 |
sysobjects | 每个数据库 | 所有数据库对象 |
syspermissions | 每个数据库 | 权限 |
systypes | 每个数据库 | 用户定义数据类型 |
sysusers | 每个数据库 | 用户 |
在sqlserver中一般可通过查询sys.objects系统表来得知结果,不过可以有更方便的方法 如下:
if object_id('tb_table') is not null print 'exist' else print'not exist'如上,可用object_id()来快速达到相同的目的,tb_table就是我将要创建的资源的名称,所以要先判断当前数据库中不存在相同的资源 object_id()可接受两个参数,第一个如上所示,代表资源的名称,上面的就是表的名字,但往往我们要说明我们所要创建的是什么类型的资源, 这样sql可以明确地在一种类型的资源中查找是否有重复的名字,如下:
if object_id('tb_table','u') is not null print 'exist' else print'not exist'第二个参数 “u” 就表示tb_table是用户创建的表,即:USER_TABLE地首字母简写 查询sys.objects中可得到各种资源的类型名称(TYPE列),这里之举几个主要的例子
u ———– 用户创建的表,区别于系统表(USER_TABLE) s ———– 系统表(SYSTEM_TABLE) v ———– 视图(VIEW) p ———– 存储过程(SQL_STORED_PROCEDURE)如果你要查询的是所有数据库(用户/系统):
select * from master..sysdatabases如果你要查询的是用户数据库,则使用:
select * from master..sysdatabases where dbid > 4如果你要查询的是系统数据库,只需要把where字句改为dbid < 4即可。
2.对应数据库中sysobjects表(反应的是相应数据库中所有的对象): 这个表的用处是最大的,因为它里面存放的有:表(系统/用户)、存储过程(系统/用户)、视图、主键、外键等。 这里就不一一说明了。 比如你sqlserver中有个数据库名叫 test,如果要查询该数据库中的所有表对象:
select * from test..sysobjects where type = ’u’ or type = ’s’这里的type = ’u’是表示用户表对象,type = ’s’是系统表对象,怎样单独查询用户表对象或者系统表对象就不用说了吧。 如果你要查询的是存储过程当然也分了系统和用户了: 这个是查询数据库中所有存储过程
select * from test..sysobjects where type = ’p’如果你要查询的是用户存储过程则加上 and category <> 2 即可。 查询系统存储过程就不用说了吧(category = 2 谁不知道。。。) 查询视图与查询存储过程一样,比如: 你查询的是数据库中所有视图
select * from test..sysobjects where type = ’v’如果你要查询的是用户视图则加上 and category <> 2 即可。 其他的就不说了,就把 它们的type给大家说下:
type = ’ pk’ 表示主键。type = ’ d’ 外键引用。type = ’uq’ 唯一索引。http://www.cnblogs.com/accumulater/p/6214029.html https://zhidao.baidu.com/question/415824360.html
新闻热点
疑难解答