浅谈(SQL Server)数据库中系统表的作用
(一)系统表:存储SQL所有的系统信息。存储有关数据库服务中的元数据所谓元数据即(比如数据服务器有哪些用户数据库、数据库服务器有哪些登陆账号,数据库中都
(一)系统表:存储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编程具有很大帮助
广告
上一篇: 一个用于网站用户管理的函数库(原作者:tim_perdue)
下一篇: 隐藏index.php的规则
推荐阅读
-
SQL Server2005打开数据表中的XML内容时报错的解决办法
-
在sqlserver2005中安装sql server 2000的示例数据库northwind的方法
-
通过系统数据库获取用户所有数据库中的视图、表、存储过程
-
SQL Server 数据库调整表中列的顺序操作方法及遇到问题
-
SQL Server 将一个表中字段的值复制到另一个表的字段中
-
在程序中压缩sql server2000的数据库备份文件的代码
-
Sql Server里删除数据表中重复记录的例子
-
【SQL Server】利用游标将学生表中的成绩转化为绩点
-
解决SQL SERVER 2008数据库表中修改字段后不能保存
-
SQL Server数字开头的数据库表名的解决方法