RDBMS基础

来源:互联网 发布:java不定长度数组 编辑:程序博客网 时间:2024/05/17 08:50

1、任意SQLSERVER都有master数据库,master数据库保存一组特殊的表(系统表)用于系统的总体控制。该数据库对于系统至关重要,不能删除。

一、SQL Server系统表的应用

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

  1) 只能对单表进行操作,当需要查询一个数据库中所有的表时,需要多次执行SP_COLUMNS ,因此显得非常繁琐。

  2) 查询结果集中包含了许多不必要的信息。

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

  在创建一个数据库的同时,系统会自动建立一些系统表,限于篇幅的缘故我们在这里只介绍与应用实例有关的三个系统表(SYSOBJECTS,SYSCOLUMNS,SYSTYPES)及其相关的字段。

  表SYSOBJECTS为数据库内创建的每个对象(约束,规则,表,视图,触发器等)创建一条记录。

  该表相关字段的含义如下:

  SYSOBJECTS.name 对象名,如:表名,视图名。

  SYSOBJECTS.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 物理存储数据类型。

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

  源代码如下:

  if exists (select * from sysobjects where id = object_id('dbo. print_dbstructure

  ') and sysstat & 0xf = 4) 存储过程

  drop procedure dbo. print_dbstructure  

  GO

  CREATE PROCEDURE print_dbstructure  

  AS

  SELECT DISTINCT sysobjects.name, syscolumns.colid,
  syscolumns.name, systypes.name, syscolumns.prec, syscolumns.scale
  FROM syscolumns, sysobjects, systypes
  WHERE sysobjects.id = syscolumns.id AND systypes.type = syscolumns.type AND ((sysobjects.type='u'))
  GO

  首先判断是否存在一个名为print_dbstructure的存储过程,如果存在,就摘除它,否则,定义SQL语句建立新的存储过程。从三个系统表中选出满足条件的记录(即该数据库中保存在系统表中的用户表信息)。

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


二、事物日志

 

   数据库文件本身并不是“事情发生最多的场所”。数据库当然要从数据库文件读取,但时间上,任意数据库的更改起初不进入数据库本身,而是不断地被写到事物日志。在后面的某个时间点上,数据库发生检查点,就是在该时间点,日志中所有的更改才被传到实际的数据库文件。
   日志是数据进入磁盘上的最先位置,且稍后后被传到实际的数据库。

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 蒙田包包里面不耐脏怎么办? 摩托车转向灯不会打怎么办 浓硫酸弄到脸上怎么办 钥匙被锁在家里怎么办 有奶宝宝吸不出来怎么办 奶涨宝宝吸不出来怎么办 高铁票未取误点怎么办 飞猪上12306占座失败怎么办? 新生儿肚脐还没有脱落发炎怎么办 蹲坑被纸巾堵了怎么办 老公有外遇老婆不想离婚怎么办 结婚十年妻子出轨该怎么办 初生儿眼睛多眼屎怎么办 被丝袜脚摩擦过瘾了怎么办 老公在卧室装摄像头怎么办 听了鬼故事害怕怎么办 看完鬼片害怕睡不着怎么办 晚上看了鬼片怎么办 说话不经过大脑考虑怎么办 我太受欢迎了怎么办动漫结局 狗胃不好总呕吐怎么办 比格犬晚上叫怎么办 玻尿酸隆鼻变宽了怎么办 打玻尿酸鼻子变宽怎么办 鼻炎的人感冒了怎么办 小孩上幼儿园反复感冒怎么办 3岁宝宝感冒鼻炎怎么办 鼻炎犯了鼻子不通气怎么办 食物呛到鼻子里怎么办 胃疼引起的焦虑怎么办 泰迪犬发生口腔亏痒怎么办? 俩鼻子都堵了怎么办 2岁宝宝鼻甲肿大怎么办 感冒10多天不好怎么办 宝妈鼻炎犯了怎么办 鼻炎犯了好多黄鼻涕怎么办 空调吹多了上火怎么办 宝宝感冒鼻塞流鼻涕口臭怎么办 怀孕了有鼻息肉怎么办 孕晚期鼻炎犯了怎么办 孕妇鼻炎犯了头疼怎么办