博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈(SQL Server)数据库中系统表的作用
阅读量:7062 次
发布时间:2019-06-28

本文共 974 字,大约阅读时间需要 3 分钟。

(一)系统表:存储SQL所有的系统信息。存储有关数据库服务中的元数据所谓元数据即(比如数据服务器有哪些用户数据库、数据库服务器有哪些登陆账号,数据库中都有哪些表,每个表都有哪些字段 每个数据库有哪些存储过程、视图等等的数据),系统表一般sys开头。

(二)了解数据库中系统表,可以编写sql语句或编程的时候用到。以下场景使用到了系统表

           1、在创建数据库的时候选判断数据库是否存在;创建数据库中对象(表、视图、存储过程、索引等)是否存在,存在返回,不存在则执行创建语句。

           2、批量删除数据库中对象,比如一次性删除某个具体数据库中的所有用户创建的表、视图、索引等对象,可以查询系统表中对象然后使用sql语句控制删除。

(三)重要的几个系统表

Sysxlogins:存在与Master数据库中,(所有数据库中用户和角色),记录着所有能登陆到Sql server 的帐号。因为系统表是不允许人工删除的,如想删除则执行sp_configure’allow update’,1

                    不会立即生效,要重启服务或reconfigure with override

sysdatabases:记录着当前系统所有的数据库。只有Master数据中有此系统表。

Systypes(每个数据库都有):存放系统中默认的用户类型和用户自定义的用户类型。

Sysusers:记录每个数据库中的用户和角色。

Sysobjects:在数据库内创建的每个对象(约束、默认、日志、规则、存储过程)在表中占一行。

(四)知道了数据库中系统表,可以在写sql语句或在开发过程中通过sql语句完成以下任务

      1、查询数据库中都有哪些数据库

            select * from dbo.sysdatabases

       2、查询用户创建的数据库中有哪些用户创建的表

            select * from Sysobjects  where xtype='U'

      3、查询用户创建的数据库中有哪些用户创建的存储过程

            select * from Sysobjects  where xtype='P'

      4、批量生成删除数据库中所有用户表的sql语句

          select 'drop table '+ name  from Sysobjects where xtype='U'

综合以上所述,掌握数据库中系统表,对于我们sql编程具有很大帮助

广告

转载地址:http://nrjll.baihongyu.com/

你可能感兴趣的文章
ECS应用管理最佳实践
查看>>
JavaSE小实践1:Java爬取斗图网站的所有表情包
查看>>
微信小程序上拉加载:onReachBottom详解+设置触发距离
查看>>
python docx文档转html页面
查看>>
Python学习之路13-记分
查看>>
从tcpdump抓包看TCP/IP协议
查看>>
【跃迁之路】【463天】刻意练习系列222(2018.05.14)
查看>>
windows-nginx-https-本地配置
查看>>
JDK9: 集成 Jshell 和 Maven 项目.
查看>>
【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
查看>>
回流、重绘及其优化
查看>>
入口文件开始,分析Vue源码实现
查看>>
微信开放平台全网发布【失败】的几点排查方法
查看>>
vue-router 实现分析
查看>>
js如何打印object对象
查看>>
体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
查看>>
Ruby 2.x 源代码分析:扩展 概述
查看>>
我感觉这是史上最牛的防sql注入方法类
查看>>
angular2开源库收集
查看>>
ArchSummit深圳APM专场总结:性能监控与调优实践干货分享
查看>>