加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

浅谈SQLServer中系统表的应用

发布时间:2020-12-12 13:15:29 所属栏目:MsSql教程 来源:网络整理
导读:浅谈SQLServer中系统表的应用 1.? master 数据库中sysdatabases表(是SQLServer中所有的数据库的库名) : 如果你要查询的是所有数据库(用户/ 系统): select * from master..sysdatabases 如果你要查询的是用户数据库,则使用: select * from master..sy
浅谈SQLServer中系统表的应用 1.? master 数据库中sysdatabases表(是SQLServer中所有的数据库的库名) : 如果你要查询的是所有数据库(用户/ 系统): select * from master..sysdatabases 如果你要查询的是用户数据库,则使用: select * from master..sysdatabases where dbid > 4 如果你要查询的是系统数据库,只需要把where字句改为dbid < 4即可。 2.对应数据库中sysobjects表(反应的是相应数据库中所有的对象): 这个表的用处是最大的,因为它里面存放的有:表(系统/用户)、存储过程(系统/用户)、视图、主键、外键等。 这里就不一一说明了。www.2cto.com? 比如你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 谁不知道。。。) 查询视图与查询存储过程一样,比如: ? www.2cto.com? 你查询的是数据库中所有视图 select * from test..sysobjects where type = 'v' 如果你要查询的是用户视图则加上 and category <> 2 即可。 其他的就不说了,就把 它们的type给大家说下: type = ' PK' 表示主键。 type = ' D'? 外键引用。 type = 'UQ' 唯一索引。? 大概就这些了,有什么不全的请大家补充,谢谢。 3.syscomments表 存放的是所有存储过程、视图等(还有什么不清楚了。。。)。 这里还是以test数据库为例,这个表要和sysobjects表相结合用才可,比如查询的是test数据库中用户存储过程?? www.2cto.com? 的内容: select a.name,b.* from test..sysobjects a,test..syscomments b where a.type = 'p' and a.category <> 2 and a.id = b.id (语言有点通俗,呵呵,大家别见怪,相信大家都知道) 4 syscolumns表: 存放的什么大家都知道吧(看名字就知道是列名,地球人都知道) 这里还是以为test数据库为例,下面的语句查询的是test数据库中所有用户表的列信息: select a.name,test..syscolumns b where a.type = 'u' and a.id = b.id?? www.2cto.com? 好了,不说了,差不多了,一般用得最多的就这几个表了。。没写全的请大家补充下,如果有什么不明白了,欢迎大家一起探讨。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读