网站首页 | 经济学论文 | 证券金融 | 管理学 | 会计审计 | 法学论文 | 医药学论文 | 社会学论文 | 教育论文 | 计算机 | 艺术论文 | 哲学论文 | 财务管理 |
写论文网
  • 教育理论论文
  • 基础教育论文
  • 中等教育论文
  • 高等教育论文
  • 职业教育论文
  • 心理学论文
  • 学科教育论文
  • 英语教学论文
  • 您的位置:写论文网 > 教育论文 > 学科教育论文 > SQLServer系统表研究论文:研究论文 正文 2019-12-21 07:26:15

    SQLServer系统表研究论文:研究论文

    相关热词搜索:

    SQLServer系统表研究论文

    SQLServer系统表研究论文 摘要:本文介绍了MicrosoftSQLServer数据库的系统表,并对系统中经常 遇到的一个问题给出了通过系统表建立存储过程的解决办法。

    关键词:SQLServer系统表存储过程 1.SQLServer的系统表 Microsoft的SQLServer是一个可伸缩的高性能数据库管理系统,专为分布 式客户机/服务器环境而设计,SQLServer几乎将所有的配置信息、安全性信息和 对象信息都存储在了它自身的系统表中,而系统表存在于每个独立的数据库中, 存储一个特定数据库对象信息的系统表通常称为数据库目录,MASTER数据库有 其特有的系统表用于保存整个系统和所有数据库的信息,通常称为服务器目录或 系统目录。

    服务器上所有的数据库包括MODULE,MASTER等都含有18个具有相同 名称、结构的系统表,如表SYSOBJECTS用于描述数据库中的对象表、视图、存 储过程等,表SYSUSER用于描述数据库的用户,而MASTER数据库另外还有13 个单独的全局系统表,如表SYSLOGINS用于保存每个服务器的登录名、口令和 配置信息、表SYSDATABASE保存服务器上所有数据库名、所有者、状态及其 他信息。

    存储过程是内嵌于数据库中的程序代码,它与表、视图等一样是数据库的 一个组成部分,不同于一般的外部程序代码,它是经过预编译处理的代码,因此 具有运行速度快、效率高的特点,存储过程也是SQLServer的一个重要功能,许 多单纯针对后台数据库的操作一般都交由存储过程来完成以提高系统效率。本文 将给出一个存储过程来说明SQLServer系统表的应用。

    2.SQLServer系统表的应用 在应用SQLServer的基于客户机/服务器体系结构的信息系统开发中,有时 需要将后台SQLServer上的某一数据库的表结构都打印出来,以便于开发人员查 阅及最终文档的形成。SQLServer本身提供了一个系统存储过程(SP_COLUMNS), 可以完成对单个表结构的查询,只要在SLQServer的ISQL-W工具中键入 SP_COLUMNS“表名”,并执行即可得到结果集。但该方法有许多不足之处,其主要缺点是:
    1)只能对数据库中单个数据表进行操作,当需要查询一个数据库中所有的 表时,需要多次执行系统存储过程SP_COLUMNS,因此显得非常繁琐。

    2)查询结果集中包含了许多不必要的信息,缺乏使用的灵活性。

    下面我们创建一个存储过程来完成对某一个数据库中所有表结构的查询。

    在创建一个数据库的同时,系统会自动建立一些系统表,限于篇幅的缘故 我们在这里只介绍与应用实例有关的三个系统表(SYSOBJECTS, SYSCOLUMNS,SYSTYPES)及其相关的字段。ケSYSOBJECTS为数据库内创建 的每个对象(约束,规则,表,视图,触发器等)创建一条记录。

    该表相关字段的含义如下:
    SYSOBJECTS.name对象名,如:表名,视图名。

    SYSONJECTS.id对象id。

    SYSOBJECTS.type对象类型(p存储过程,v视图,s系统表,u用户表)。

    表SYSCOLUMNS为每个表、视图中的每个列和每个存储过程的每个参数 创建一条记录。ジ帽硐喙刈侄蔚暮义如下:(此处的列系指数据库中每个表、视 图中的列) SYSCOLUMNS.id该列所属的表的id,可与SYSOBJECTS.id相关联 SYSCOLUMNS.colid列id,表示该列是表或视图的第几列 SYSCOLUMNS.type物理存储类型,可与SYSTYPES.type相关联. SYSCOLUMNS.length数据的物理长度。

    SYSCOLUMNS.name列名字,即字段名。

    SYSCOLUMNS.Pre列的精度级。

    SYSCOLUMNS.Scale列的标度级。表SYSTYPES为每个系统和每个用户提供的数据类型创建一条记录,如果 它们存在,给定域和默认值,描述系统提供的数据类型的行不可更改。

    该表相关字段的含义如下:
    SYSTYPES.name数据类型的名字。

    SYSTYPES.type物理存储数据类型。

    在SQLSERVER的企业管理器(SQLENTERPRISEMANAGER)中,选定某 一数据库,创建存储过程print_dbstructure。

    源代码如下:
    ifexists(select*fromsysobjectswhereid=object_id(""""dbo.print_dbstructure"""")andsysstat 0xf=4)存储过程 dropproceduredbo.print_dbstructureオ GO CREATEPROCEDUREprint_dbstructure AS SELECTDISTINCTsysobjects.name,syscolumns.colid, syscolumns.name,systypes.name,syscolumns.prec,syscolumns.scale FROMsyscolumns,sysobjects,systypes WHEREsysobjects.id=syscolumns.idANDsystypes.type=syscolumns.typeAND((syso bjects.type=""""u"""")) GO 首先判断是否存在一个名为print_dbstructure的存储过程,如果存在,就摘 除它,否则,定义SQL语句建立新的存储过程。从三个系统表中选出满足条件的 记录(即该数据库中保存在系统表中的用户表信息)。

    执行时,在ISQL_W工具中,选定print_dbstructure所在的数据库,执行该存储过程,即可得到结果集(即该数据库中用户表的结构信息)。

    3.SQLServer系统表的应用推广 以上所介绍存储过程的主要缺陷在于只能对服务器上某一特定的数据库 (print_dbstructure所在的数据库)进行查询操作,我们可以通过在SQLServer系统数 据库MASTER中建立带有数据库名参数的系统存储过程来解决这一问题,请读者 自行完成。当然,SQLServer系统表的应用远不止于止,读者也可依本文所介绍 的方法去挖掘其他几个系统表的应用。

    • 范文大全
    • 教案
    • 优秀作文
    • 教师范文
    • 综合阅读
    • 读后感
    • 说说
    SQLServer系统表研究论文:研究论文》由(写论文网)整理提供,版权归原作者、原出处所有。
    Copyright © 2019 写论文网 All Rights Reserved.