Heim >Datenbank >MySQL-Tutorial > 浅谈(SQL Server)数据库中系统表的作用

浅谈(SQL Server)数据库中系统表的作用

WBOY
WBOYOriginal
2016-06-07 17:41:521390Durchsuche

(一)系统表:存储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编程具有很大帮助

广告

titel263

12353

system63

system373

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel: Oracle 事务探索与实例(二)Nächster Artikel: mysql5.6主从参数详解