当前位置:文档之家› linuxLVM的创建和管理

linuxLVM的创建和管理

linuxLVM的创建和管理
linuxLVM的创建和管理

linuxLVM的创建和管理

概述:

LVM是Logical

Volume

Manager(逻辑卷管理器)的简写,它为主机提供了更高层次的磁盘存储管理能力。LVM可以帮助系统管理员为应用与用户方便地分配存储空间。在LVM管理下的逻辑卷可以按需改变大小或添加移除。另外,LVM可以为所管理的逻辑卷提供定制的命名标识。因此,使用LVM 主要是方便了对存储系统的管理,增加了系统的扩展性。

目前LVM在Linux下有两个版本,分别是LVM

1和LVM

2,LVM2不仅仅是Linux逻辑卷管理在版本与功能上的升级,而且是架构在一个新的内核存储子系统(DM,device-mapper)之上的。这个存储子系统提供了一个轻量级的、可扩展的卷管理设施。除了在原有LVM卷管理功能的基础上,Linux的逻辑卷管理将会为用户提供更多的存储管理方案,如镜像、加密卷、多路径技术。所以在本节将以LVM

2为例来详细介绍LVM的创建与管理。

LVM相关概念和术语

LVM是建立在磁盘分区和文件系统之间的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个逻辑的盘卷,再在盘卷上来建立文件系统。LVM的结构如图1如示:

图1

LVM结构图

在上面的LVM结构图中,涉及到了很多LVM的相关术语,那么关于这些术语的详细说明如下:

物理卷(physical

volume,PV)

物理卷就是指硬盘分区,也可以是整个硬盘或已创建的软RAID

,是LVM的基本存储设备,与普通物理存储介质的区别是该设备包含有LVM相关的管理参数。

卷组(volume

group,VG)

卷组是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个“LVM分区”(逻辑卷)。

逻辑卷(logical

volume,LV)

LVM的逻辑卷类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统。可以做这样一个设想来理解以上三者的关系:如果把PV比做地球的一个板块,VG则是一个地球,因为地球是由多个板块组成的,那么在地球上划分一个区域并标记为亚洲,则亚洲就相当于一个LV。

物理块(physical

extent,PE)

物理卷以大小相等的物理块为存储的基本单位,同时也是LVM寻址的最小单元。

逻辑块(logical

extent,LE)

逻辑卷以大小相等的逻辑块为存储的基本单位,在同一个卷组中,LE的大小和PE是相等的,并且一一对应。

卷组描述区域(Volume

Group Descriptor Area,VGDA)

和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。VGDA包括以下内容:

PV描述符、VG描述符、LV描述符、和一些PE描述符。系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。

创建逻辑卷

创建逻辑卷通常包括如下步骤:

?创建分区

?

?创建物理卷

?

?创建卷组

?

?激活卷组

?

?创建逻辑卷

?

?创建文件系统

下面将通过一个具体的实例来详细介绍创建逻辑卷的整个过程。

【实例1】

利用/dev/sdb、/dev/sdc、/dev/sdd这三块磁盘创建一个卷组,再在卷组上创建两个逻辑卷,并指定将其中一个逻辑卷的映射模式为条带映射,实现的步骤如下:

1、创建物理卷

创建物理卷的命令是“pvcreate”,该命令可以将需要添加到卷组的分区或磁盘创建为物理卷。操作如下:

#

pvcreate /dev/sdb /dev/sdc /dev/sdd

Physical

volume "/dev/sdb" successfully created

Physical

volume "/dev/sdc" successfully created

Physical volume

"/dev/sdd" successfully created

2、创建卷组

创建卷组的命令为“vgcreate”,将使用“pvcreate”建立的物理卷创建为一个完整的卷组,如下:

#

vgcreate vgtest /dev/sdb /dev/sdc /dev/sdd

Volume group

"vgtest" successfully created

其中vgcreate命令第一个参数是指定该卷组的名为“vgtest”,该名称可以根据需要随便定义,后面接添加到该卷组的物理卷。同时在使用vgcreate

在创建卷组时,还可以指定PE的大小,需要加上-s参数来实现,PE大小范围为8

KB 到16GB,并且必须总是2的倍数。一个卷组里面最多允许65534个PE存在。默认设置的PE大小为4

MB,这表示卷组上创建的所有逻辑卷都以4

MB 为增量单位来进行扩充或缩减,所以4

MB 的PE决定了单个逻辑卷最大容量为

256

GB,若要创建更大的逻辑卷则创建卷组时需要指定更大的PE。

3、创建逻辑卷

创建完卷组后,现在就可通过“lvcreate”命令来创建逻辑卷了,同时在创建逻辑卷的时候,还可以指定逻辑块与物理块映射的模式,逻辑卷的映射模式共有如下两种:

?线性模式――按照顺序把一定范围内的物理块与逻辑块映射,这也是默认的映射方式。例如,把逻辑卷中1-25的LE映射到PV1,把26-50的LE映射到PV2上。

?

?

?条带模式――将把逻辑块以条带的形式映射到不同的物理卷中,这种方式与前面讲到的RAID

?0有些类似,这种方式可以提高逻辑卷读写的性能。例如,将逻辑卷的LE ?1映射为PV1的PE1,LE

?2映射为PV2的PE1,LE

?3映射为PV3的PE1。

那么创建逻辑卷的操作如下:

#

lvcreate -i 3 -I 4 -L 180M -n lvtest1 vgtest

Logical volume

"lvtest1" created

上面的提示信息表明成功创建了一个名为“lvtest1”的逻辑卷,其命令中的几个参数的说明如下:

?-i:采用条带模式的映射方式创建逻辑卷,该参数的值用于指定所创建的逻辑卷将映射在几个PV上。

?

?-I:指定使用条带模式时所采用块的大小,单位为KB,其值必须是:2N(N≥2)。?

?-L:指定创建逻辑卷的大小,单位的可以用K、M、G、T表示KB、MB、GB及TB。?

-n:用来指定所创建的逻辑卷名称,该名称可以根据需要随便定义。

在使用“-i”参数指定PV的个数时,一定要确认所指定的这些PV是没有完全被分配给任何逻辑卷的,否则将创建失败,其次若这些PV的大小不等,那么所创建的逻辑卷只能取最小值。

下面再使用剩余的空间来创建第二个逻辑卷,通过“vgdisplay”命令可查看当前卷组剩余的空间,如下:

#

vgdisplay

---

Volume group ---

VG

Name vgtest

System

ID

Format

lvm2

Metadata

Areas 3

Metadata

Sequence No 11

VG

Access read/write

VG

Status resizable

MAX

LV 0

Cur

LV 1

Open

LV 0

Max

PV 0

Cur

PV 3

Act

PV 3

VG

Size 300.00 MB

PE

Size 4.00 MB

Total

PE 75

Alloc

PE / Size 45 / 180.00 MB

Free

PE / Size 30 / 120.00 MB

VG UUID

1Nbgxo-U4Ux-Y5Hb-TDzT-d5Fp-Iov7-wKFHG5

从如上的信息可了解到“vgtest”卷组还剩余30个空闲的PE,那么将这些空闲的空间全部划分给另一个逻辑卷,操作如下:

#

lvcreate -l 30 -n lvtest2 vgtest

Logical volume

"lvtest2" created

其中“-l”用于指定逻辑卷的LE数量,默认为4MB,所以此次创建的逻辑卷的大小是120M,该参数与“-L”效果一样。

4、创建文件系统

在逻辑卷上创建文件系统和在分区上创建文件系统方法是一样,例如,在逻辑卷上创建ext3格式的文件系统,命令如下:

#

mkfs.ext3 /dev/vgtest/lvtest1

# mkfs.ext3

/dev/vgtest/lvtest2

以上就是在Linux下创建逻辑卷的整个步骤。

LVM的维护

在LVM的日常维护工作中,通常会需要对逻辑卷扩容、添加新的物理卷等操作,下面将结合【实例1】中所创建的逻辑卷来介绍LVM常用的管理操作,如下:

1、激活卷组

卷组若不被激活,卷组和逻辑卷是不能被访问的,在LVM

2里创建的卷组默认是激活的,那么手动激活卷组的命令是:

#

vgchange -a y vgtest

2 logical volume(s)

in volume group "vgtest" now active

其中“-a”用于设置指定的卷组是否可用,参数“y”表示激活卷组,若设置为“n”则表示暂停卷组使用。

2、为卷组增加新的物理卷

当卷组空间不足时,可以加入新的物理卷来扩大卷组容量,这时可用“vgextend”命令来实现,如下:

#

vgextend vgtest /dev/sde

Volume

group "vgtest" successfully extended

其中“/dev/sde”是新增的物理卷,前提该设备已经使用“pvcreate”进行了初始化了。

3、从卷组中移除物理卷

要从一个卷组中移除一个物理卷,首先要确认要移除的物理卷没有被任何逻辑卷正在使用,通过“pvdisplay”命令可查看到该物理卷信息,如下:

#

pvdisplay /dev/sde

---

Physical volume ---

PV

Name /dev/sde

VG

Name vgtest

PV

Size 100.00 MB / not usable 0

Allocatable

yes

PE

Size (KByte) 4096

Total

PE 25

Free

PE 25

Allocated

PE 0

PV

UUID ee2IFC-UHUq-Xg67-icwt-AhdJ-7kRz-JdDjiq

若其中的“Tota l

PE”与“ Free

PE”相等,表明该物理卷没有被使用,如果某个物理卷正在被逻辑卷所使用,就需要将该物理卷的数据转移到其它地方,然后再移除。移除物理卷的命令为“vgreduce”,如下:

#

vgreduce vgtest /dev/sde

Removed

"/dev/sde" from volume group "vgtest"

4、在物理卷间转移数据

当发现逻辑卷下的某个磁盘有错误,或有其它需求要转移其中物理卷的数据时(如,更换大容量或更高速的物理设备),那么可通过“pvmove”来实现在物理卷之间转移数据,例如,将物理卷“/dev/sdd”上的数据转移到“/dev/sde”具体操作如下:

#

pvmove /dev/sdd /dev/sde

/dev/sdd: Moved:

100.0%

其中/dev/sde的大小一定要大于或等于/dev/sdd,其次在使用“pvmove

”前需要用“modprobe

dm-mirror”命令来加载dm-mirror模块,因为“pvmove”在转移数据时需要用到该模块,而默认系统是不加载该模块的。

5、扩展逻辑卷

在前面提到过,LVM提供了方便调整逻辑卷大小的功能,扩展逻辑卷大小的命令是“lvextent”,例如,将“lvtest2”的空间大小调整到160M,操作如下:

#

lvextend -L 160M /dev/vgtest/lvtest2

Extending

logical volume lvtest2 to 160.00 MB

Logical volume

lvtest2 successfully resized

也可以在原来的基础增加相应的大小,如下:

#

lvextend -L +40M /dev/vgtest/lvtest2

Extending

logical volume lvtest2 to 160.00 MB

Logical volume

lvtest2 successfully resized

逻辑卷扩展后并不会马上生效,需要使用“resize2fs”命令重新加载逻辑卷的大小,该命令只针对ext2/ext3的文件系统(若是reiserfs的文件系统,则使用“resize_reiserfs”命令),如果该逻辑卷正在使用中,就应该先将该逻辑卷卸载后再执行“resize2fs”命令,操作如下:

#

umount /dev/vgtest/lvtest2

#

resize2fs /dev/vgtest/lvtest2

resize2fs

1.35 (28-Feb-2004)

The

filesystem is already 163840 blocks long. Nothing to do!

# mount

/dev/vgtest/lvtest2 /mnt/lvtest2/

以上这些操作可以通过“ext2online”命令直接来实现,这样就不用做卸载逻辑卷等操作了,如下:

#

ext2online /dev/vgtest/lvtest2

ext2online v1.1.18 -

2001/03/18 for EXT2FS 0.5b

6、删除逻辑卷

删除逻辑卷前首先需要将其卸载,其命令是“lvremove”,如下:

#

lvremove /dev/vgtest/lvtest2

Do

you really want to remove active logical volume "lvtest2"?

[y/n]: y

Logical volume

"lvtest2" successfully removed

其中输入“y”确认确认删除该逻辑卷。

7、移除卷组

在移除卷组前首先要确认该卷组中已没有任何的逻辑卷了,或者可使用“vgchange”手工将卷组停止,移除卷组的具体操作如下:

#

vgremove vgtest

Volume group

"vgtest" successfully removed

8、删除物理卷

在删除物理卷前,必须确认该物理卷已从卷组中移除了,删除物理卷的命令是“pvremove”,如下:

#

pvremove /dev/sde

Labels on physical

volume "/dev/sde" successfully wiped

除此之外,LVM还可以提供snapshot(快照)等功能,其snapshot能够快速的备份当前逻辑卷中的数据,从而大大减轻备份数据的负担,只是目前来说技术并不是很成熟。

数据库原理课程设计实验[创建存储过程与触发器]

存储过程与触发器实验日期和时间: 2016 年 5 月13 日、 星 期五第节 实验室:DJ2-信息管理实验室 班级:学号:姓名: 实验环境: 1.硬件:笔记本电脑 2.软件:SQL Server 2012 实验原理: 存储过程概念:存储过程是事先编好的,存储在数据库中的一组被编译了的T-SQL命令集合,这些命令用来完成对数据库的指定操作。存储过程可以接受用户的输入参数、向客户端返回表格或标量结果和消息、调用数据定义语言(DDL)和数据操作语言(DML)语句,然后返回输入参数。 触发器概念:触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 实验任务: 此作业成绩得分根据你完成的任务的难度和数量评分,完成后在实验室给老师演示验收,课后提交电子版报告。如额外完成自拟题目应当事先将所拟题目提交给老师或在报告中明确标注题意。

假定有学校的图书馆管理信息系统,可以用于日常管理书库和同学们的借还书工作。以下列出参考的库表情况: 根据管理的业务需求来分析,该管理信息系统的数据库应至少包括如下数据表:(打★号的是必须有的表) 1.★图书现有库存表。作用:记录图书的现有库存情况。至少包括:书号、书名、 作者、简介、类别、价格、出版社、出版日期、现有库存数量、最小库存量、库 存总量、库存位置等。 2.★读者信息表。作用:记录读者信息。至少包括:读者编号、证件类型、证件号 码、姓名、性别、职业(可填写教师、学生、教工、其它……)、所属单位、地 址、联系电话等。 3.★借书记录表。作用:记录借书情况,以及是否归还。至少包括:借阅ID(主 键,可设置为自动编号)、书号、读者编号、借阅数量、借阅日期、是否归还、 管理员编号……等。 4.★还书记录表。作用:记录还书情况。至少包括:还书ID(主键,可设置为自动 编号)、书号、读者编号、归还数量、归还日期、是否超期(超过假设45天为 超期)、超期天数、管理员编号……等。(附:为简化操作,续借可视为归还后 再借)。 5.管理员信息表。作用:记录负责管理书库和借书还书工作的管理员信息。至少包 括:管理员编号、职工编号(在职工档案表中的职工编号)、用户名、密码、管 理员级别等……。 6.职工档案表表。作用:记录职工档案。至少包括: 职工编号、姓名、性别、单 位、职称、职务、出生日期、学历、……其它字段自拟。

实验1-创建和管理数据库

实验报告 实验课程企业级数据库安装配置与管理实验项目实验:创建数据库和表 实验地点 指导教师 班级 学生姓名 教师评分 日期

实验1 创建数据库和表 一、目的与要求 (1)掌握sql server 2005企业管理器的基本使用方法 (2)掌握sql server 2005查询分析器的基本使用方法 (3)了解sql server 2005数据库的逻辑结构和物理结构 (4)学会用可视化的方式创建数据库和表 (5)学会使用T-SQL语句创建数据库和表 二、实验准备 (1)了解SQL Server2005各种版本安装的软件要求 (2)了解SQL Server支持的身份验证模式 (3)SQL Server各组件的主要功能 (4)对数据库、表、数据库对象有基本了解 (5)了解执行SQL 语句的方法 三、实验内容 (1)创建用于企业管理的员工管理数据库,名称是Employee,包含员工的信息,部门编号,以及员工的薪水信息。包含下面三个表: Employees:员工信息表 Departments: 部门信息表 Salary:员工薪水情况表 表的结构如图。 四、实验步骤 第一题:(不需要截图)可视化操作

(1)在企业管理器中创建数据库Employee CREATE DATABASE Employee ON (NAME=Employee_data, FILENAME=‘D:\sql\Employee.mdf’, SIZE=10, MAXSIZE=50, FILEGROWTH=5%) LOG ON (NAME=‘Employee_log’, FILENAME=‘D:\sql\Employee.ldf’, size=2, MAXSIZE=2, FILEGROWTH=1 要求:逻辑文件初始大小为10mb,最大大小为50mb,数据库自动增长,增长方式为5%。 日志文件初始大小为2mb,最大大小为5mb,按照1mb增长。 (2)在企业管理中删除创建的Employee数据库 Drop DATABASE Employee 第二题:(请写出sql 语句,不需要截图) (1)使用T-SQL 语句创建数据库EMPLOYEE(写出相应的sql 语句) CREATE DATABASE Employee ON PRIMARY (NAME= Employee_data1, FILENAME=‘D:\sql\Employee.mdf’, SIZE=10, MAXSIZE=50, FILEGROWTH=5%), FILEGROUP Sales6_group1 (NAME= Employee_data2, FILENAME=' D:\sql\Employee.ndf', SIZE=5, MAXSIZE=200, FILEGROWTH=1) LOG ON (NAME=‘Employee_log’, FILENAME=‘D:\sql\employee.ldf’, size=2, MAXSIZE=2, FILEGROWTH=1 要求:主数据文件Employee_data1初始大小为10mb,最大大小为50mb,数据库自动增长,

建立超链接教学设计

建立超链接教学设计 学习目标: 1、了解超链接的基本概念; 2、掌握同一站点内不同网页间及不同对象上的超链接的制作方法; 3、掌握同一页面中超链接的制作方法; 4、掌握不同站点间超链接的制作方法及E-mail链接的制作方法。 学习重点:超链接制作方法 学习难点:根据需要选择适当超链接类型 学习方法:任务驱动法、讨论法、自主探究法 课时安排:1课时 课前准备:将本节所需材料放到教师机高二学生共享文件夹中 教学过程: 一、导入新课 我们在浏览网页时,都会发现当鼠标移动到网页上的某些地方时,鼠标指针就会变成手形。对准单击时,还可以看到网页跳转到了其他网页上或者是网站上了。这是为什么呢?这就是“超链接”发挥了作用。正是由于有了"超链接",因特网才会如此神奇,如此流行! 前面我们已经分小组学习了单张网页的制作,并制作了自己的网站,今天我们就来学习如何建立超链接,将零散的网页和文件串起来,组成一个有机整体。 二、下载资源 在“网上邻居-->教师机-->高二学生共享”中找到“建立超链接”文件夹并下载到D盘上,

三、预习检测 回答下面三个问题: 1、超链接是什么? 明确:是链接源到链接目标的链接。 2、链接源及链接的目标指的是什么? 明确:⑴链接源:就是链接的载体,Frontpage中,链接的载体是指显示链接的部分,如文字或图片; ⑵链接的目标:是指链接到的位置。既可以是文件、网页,也可以是网页中的某个位置以及电子邮件的地址。 3、常见的超链接有哪几种? ⑴到网页或文件的超链接; ⑵到外网站的超链接; ⑶到书签(网页中的某一位置)的超链接; ⑷到E-mail的超链接; 四、演示操作建立到网页的超链接(资源在刚下载的“建立超链接”文件夹中) 用FrontPage打开“神奇的超链接.htm”,在网页文字“什么是超链接”上建立一个到网页“什么是超链接.htm”的超链接。 1、步骤: ⑴选中文字:“什么是超链接” ⑵执行“插入”→“超链接”,打开“创建超链接”对话框 ⑶单击按钮“制作一个指向您计算机上文件的超链接”,打开“选择文件”对话框;

测验答案-第13章存储过程的创建与管理

测验 填空题 (1) 在SQL Server 2005中,3种基本存储过程的类型分别是、和。 答案:用户自定义存储过程,系统存储过程,扩展存储过程 (2) 在SQL Server 2005中,用户既可以使用语言编写存储过程,也可以使用方式创建存储过程。 答案:Transact-SQL,CLR (3) 如果在存储过程中定义了输出参数,则必须使用关键词说明。 答案:OUTPUT 选择题 (1) 可以使用哪个系统目录视图查看存储过程定义的文本。 A. B. C. D. 答案:C (2) 通过下列哪个系统存储过程可以查看存储过程与其他数据库对象的依赖关系。 A. sp_help B. sp_rename C. sp_depend D. sp_depends 答案:D (3) 下列哪种方式不能重新编译存储过程。 A. 使用sp_recompile系统存储过程 B. 在CREATE PROCEDURE语句中使用WITH RECOMPILE C. 在EXECUTE语句中使用WITH RECOMPILE子句 D. 使用系统存储过程sp_depends 答案:D (4) 下列哪个命令可以在存储过程的定义中使用。 A. CREATE VIEW B. CREATE TABLE C. CREATE DEFAULT D. CREATE RULE 答案:B 判断题 (1) 可以使用其他.NET架构下的语言,如C#编写存储过程并部署到SQL Server 2005。 答案:√ (2) 创建存储过程的命令关键词CREATE PROCEDURE不可以缩写。 答案:× (3) 数据库BlueSkyDB中的存储过程PrcDeleteBook用于删除Books表中的记录,如果用

职工考勤管理系统数据库设计

《数据库原理及应用》项目实训任务书 一、题目:职工考勤管理信息系统 二、目的与要求 1. 目的: 1)锻炼学生的分析解决实际问题的能力; 2)培养学生的数据库基础系统的分析、设计和开发能力 2. 基本要求 1)《数据库原理及应用》课程设计采用以“项目小组”为单位进行,项目小组根据选定的项目,按计划进度完成项目的分析与设计及实现任务。 2)每个班级分成两个大组,每组选出组长一名,负责考勤、作业的收集上交。 3)题目自定或采用附录中的参考题目,每人选择一个题目 4)数据库工具:Access 或者 SQLServer 5)程序开发工具可以根据所学自行选择,或者采用ACCESS实现开发 3. 创新要求 在基本要求达到后,可进行创新设计,如系统用户功能控制,对管理员级和一般级别的用户系统功能操作不同 三、信息描述 系统基本信息描述,如:职工、考勤等。 四、功能描述 系统功能基本要求 职工信息,包括职工编号、职工姓名、性别、年龄、职称等; 出勤记录信息,包括上班打卡时间,下班打卡时间,缺勤记录等; 出差信息,包括出差起始时间、结束时间、统计总共天数等; 请假信息,包括请假开始时间,结束时间,统计请假天数等; 加班信息,包括加班开始时间、结束时间、统计加班总时间。 五、解决方案 1.分析程序的功能要求,划分程序功能模块。 2.画出系统流程图。 3.重点是设计数据库(严格按照数据库设计步骤),完成系统功能。 4.完成项目实训报告书。 六、进度安排

七、撰写项目实训报告及总结 项目实训报告要求: 包括需求分析、概念结构设计、逻辑结构设计、编码(详细写出编程步骤)、测试的步骤和内容、项目总结、参考资料等,不符合以上要求者,则本次设计以不及格记。 八、参考资料 《数据库原理及应用》 《ACCESS数据库与程序设计》 《ACCESS项目案例导航》 数据库教研室 2014.05.20 图1 系统结构图 1.2.1 模块管理 (1)用户管理模块 增加一名系统使用用户,同时设置密码和权限,当此用户要更改密码时,可以在修改密码模块中进行。必须具有一定权限才能进行此项操作。而当某些职工离职或者因某中缘故,不能再使用考勤系统,可以将该用户删除。可以更改拥护权限,使其具有访问某些模块的权限或者剥夺其访问某些模块的权限。所有系统使用用户都可能在此修改密码,以保障系统安全。 (2)基本资料管理模块 设置的时间有上午上、下班时间,下午上、下班时间,这个模块与上下班时间表相对应,以方便考勤操作。增加和删除请假类型,修改请假类型内容,并将操作结果存在请假类型表内。增加和删除外出类型,修改外出类型内容,并将操作结果存在外出类型表内。增加、删除和修改员工基本资料。

实验6 数据库实验——存储过程和触发器

实验6 存储过程与触发器 一、实验目的 1、加深与巩固对存储过程与触发器概念的理解。 2、掌握触发器的简单应用。 3、掌握存储过程的简单应用。 二、实验内容 一)存储过程: 1、创建一存储过程,求l+2+3+…+n,并打印结果。 CREATE PROCEDURE addresult AS DECLARE @n int=10,/*最后一个数*/ @i int=0, @result int=0 /*结果*/ BEGIN WHILE(@i<=@n) BEGIN SET @result=@result+@i SET @i=@i+1 END PRINT'1+2+3+、、、+n的结果就是:' PRINT @result RETURN(@result) END GO 2.调用上面的addresult存储过程,打印l十2+3+…+10的结果。EXEC addresult

3、修改上述存储过程为addresult1,使得@n为输入参数,其具体值由用户调用此存储过程时指定。 CREATE PROCEDURE addresult1 @n int=10 /*最后一个数*/ AS DECLARE @i int=0, @result int=0 /*结果*/ BEGIN WHILE(@i<=@n) BEGIN SET @result=@result+@i SET @i=@i+1 END PRINT'1+2+3+、、、+n的结果就是:' PRINT @result RETURN(@result) END GO 4、调用上面修改后的addresult1存储过程,打印l+2+3+…+100的结果。 EXEC addresult1 100 5.修改上述存储过程为addresult2,将@n参数设定默认值为10,并改设@sum为输出参数,让主程序能够接收计算结果。

如何给图片加超链接

个人收集整理-ZQ 现在就如何给图片加超链接在这里给大家讲讲. 如果要在图片后面加入超级链接,比如点击图片中后就能打开另一个网页,方法是:在桌面上建一个记事本,在记事本里复制下面地命令: < "你想要打开地另一个网页地地址">< "图片地址" "" "宽度数字" "高度数字">资料个人收集整理,勿做商业用途 在网页地图片上点右键查看“属性”就可以看到图片地地址和尺寸,“”是宽度,“”是高度.注意,图片地地址是右键单击图片属性得到地!!!资料个人收集整理,勿做商业用途把记事本文档另存为,文件名前面随便起,关键是后缀为,例如:. 另一个关键地地方是,网址前面必需要带,而且,上面地连接网址两边地引号一定要是英文状态下地引号,如果用中文状态下地引号则链接不上!!当然,你也可以所有地引号都不用!这样也行!!资料个人收集整理,勿做商业用途 然后可以再桌面上看见刚刚保存地文件,双击它,打开后,右键复制该图片,粘贴到你要插入图片地地方就行了!以后只要单击该图片,就能自动连接到你想要链接地网页了!资料个人收集整理,勿做商业用途 注意,刚刚在桌面上双击打开文件后,请不要左键单击图片,否则,它会自动连接到你要打开地网页上,当然,我们也可以用这个方法来验证一下你输入地代码是否正确,若正确,则能正确链接你要打开地网页.资料个人收集整理,勿做商业用途 下面地图片就是一个例子,单击图片后会链接到我地主页,呵呵! 另外,我发现有些朋友问我为什么有些论坛和贴吧或者自己地空间都不能给图片添加超链接,我只能说连这个最古老地敲代码地方法都不行,那我就帮不到了,但是,或许你会看见有人在这些论坛或贴吧给自己地图片做链接,这样方法无非有三种,一种是以付费地方式获得地,这种情况你可以到或百度上搜搜就知道了;另一种,我这里有篇文章,叫如何在百度贴吧实现图片跳转,点一下就是它地下载链接了,这是我到别人地,但是这样做很容易会被封号滴!呵呵;第三种就是虽然可以免费得到,但是要为别人做点广告,这个就有点麻烦了,具体地我也没玩过,只是看到过,但是应该可以地,感兴趣地可以到或者百度搜就是了.资料个人收集整理,勿做商业用途 如何改变图像大小? 方法是:< 图片网址宽度数字高度数字>,比如:< 图片网址> 如果不改变图片地宽度和高度比例地话,可以只填宽度数字或者比例,如,这样比较简单,方法是:< 网址宽度数字或比例> 资料个人收集整理,勿做商业用途 1 / 1

实验一创建数据库和表

实验一创建数据库和表 1、目的和要求 (1)了解SQL Server数据库的逻辑结构和物理结构。 (2)了解表的结构特点 (3)了解SQL Server的基本数据类型。 2、实验内容 (1)实验题目 ①创建一个新的数据库。创建用于企业管理的员工数据库,数据库名称为YGGL。 ②在创建好的数据库YGGL中创建数据表。考虑到数据库YGGL中包含员工的信息、部分信息以及员工的薪水信息,所以数据库YGGL应该包含三个表:Employees(员工自然信息)表、Departments(部门信息)表和Salary(员工薪水情况)表。 3、实验步骤 (1)在对象资源管理器中创建数据库YGGL。 (2)删除数据库YGGL。 ①界面操作删除数据库 删除数据库YGGL时,右键单击数据库,弹出菜单点击“删除”,弹出“删除对象”窗口,确认删除。 ② T-SQL语句删除数据库 在代码空白处右击鼠标,弹出菜单选择“执行(X)”或者键盘“F5”运行代码,在下方会显示运行成功。 此时在左侧“对象资管理器”中右键点击“数据库”选择刷新数据库,会发现数据库“PX”已经删除。 注意:当执行过一遍代码时,也就是执行了T-SQL语句删除数据库后再次执行代码会出现这样的警告。原因是由于执行过一遍T-SQL语句,进行操作的数据库已经被删除,不存在。 (3)使用T-SQL语句创建数据库YGGL。 新建查询后,在窗口中输入上面代码,右键代码空白处执行。然后在“对象资源管理器”中查看。如果“数据库”列表中并未列出YGGL数据库,则单击右键“数据库”,选择“刷新”选项,“数据库”列表中就会出现创建的YGGL数据库。 (4)在对象资源管理器中创建表。 ①创建表。Employees(员工自然信息)表、Departments(部门信息)表和Salary(员工薪水情况)表。 在对象资源管理器中选择创建的数据库“YGGL”,展开数据库YGGL,选择“表”,右键

实验六管理存储过程11页word

实验六存储过程与触发器一、存储过程 【创建存储过程】: CREATE PROCEDURE [OWNER].[PROCEDURE NAME] AS 如:Use pubs Go Create procedure author_information As select au_lname,au_fname,title,pub_name from authors a join titleauthor ta on a.au_id=ta.au_id join titles t on t.title_id=ta.title_id join publishers p on t.pub_id=p.pub_id Go 【管理存储过程】: ?可以使用sp_helptext命令查看创建存储过程的文本信息。 Use pubs Go Sp_helptext author_information

Go ?可以用sp_help查看存储过程的一般信息。 Use pubs Go Sp_help author_information Go ?可以使用系统存储过程sp_rename修改存储过程的名字。 Use pubs Go Sp_rename author_information ,authors_information Go ?也可以使用企业管理浏览存储过程的信息,具体方法是: ?从树型结构上选中存储过程所在的数据库节点,展开该节点; ?选中数据库节点下的〖存储过程〗节点,则右边的列表列出了数据库中目前所 有的存储过程; ?选中存储过程,右击,执行〖属性〗命令, 则系统将弹出如图所示对话框。 ?可以在对话框中修改存储过程内容,并保 存修改。 ?如果想知道某个表被存储过程引用的情 况,可以使用sp_depends, Sp_depends authors

存储过程与触发器 实验报告

信息工程学院实验报告 课程名称:《数据库原理》 实验项目名称:存储过程与触发器 一、实验目的: (1)了解存储过程的概念 (2)掌握创建、执行存储过程的方法 (3)了解查看、修改和删除存储过程的方法 (4)了解触发器的概念 (5)掌握创建触发器的方法 (6)掌握查看、修改、删除触发器信息的方法 二、实验设备与器件 Win7 +Sql server 2008 三、实验内容与步骤 (一)存储过程 运行实验四附录中的SQL语句,准备实验数据。然后创建下列存储过程,并调试运行存储过程,查看运行结果。 1.在企业管理器中创建一个名为StuInfo的存储过程,完成的功能是在student表中查询系号为D2的学号、姓名、性别、年龄、系号的内容。 CREATE PROCEDURE StuInfo AS SELECT SNO AS学号, SNAME AS姓名, SSEX AS性别, SAGE AS年龄, DNO AS系号 FROM student WHERE DNO='D2' 结果: stuinfo 2.使用T_SQL语句创建存储过程,完成的功能是在表student,course和study中查询以下字段:学号、姓名、性别、课程名称、考试分数。

use mydb --查询是否已存在此存储过程,如果存在,就删除它 if exists(select name from sysobjects where name='StuScoreInfo'and type='P') drop procedure StuScoreInfo go --创建存储过程 CREATE PROCEDURE StuScoreInfo as select student.sno as学号, sname as姓名, ssex as性别, https://www.doczj.com/doc/0a11855247.html,ame as课程名称, study.grade as考试分数 from student,course,study where student.sno=study.sno and https://www.doczj.com/doc/0a11855247.html,o=https://www.doczj.com/doc/0a11855247.html,o 结果: StuScoreInfo 3.使用T_SQL语句创建一个带有参数的存储过程stu_sno_info,该存储过程根据传入的学生编号,在student表中查询此学生的信息。 if exists(select name from sysobjects where name='stu_info'and type='P') drop procedure stu_info go --创建存储过程 create procedure stu_info @sno varchar(8) as select sno as学号, sname as姓名, ssex as性别, sage as年龄, dno as年级

公司员工及财务管理系统数据库设计

目录 一、需求分析 (3) 1.1 需求概述 (3) 1.2 功能简介 (3) 二、数据库概念结构设计 (3) 2.1 确定联系集及E-R图 (3) 2.2 画出E-R图 (4) 2.3公司员工信息及财务管理系统总E-R图 (5) 三、数据库逻辑设计 (5) 3.1 员工信息表(worker) (6) 3.2 收入信息表(income) (6) 3.3 支出信息表(payment) (6) 3.4 数据字典 (7) 四、建表 (7) 4.1 创建数据库 (7) 4.2 创建数据表 (7) 五、数据库的运行和维护 (10) 5.1 创建触发器和表的基本操作 (10) 5.2 创建函数和调用 (13) 5.2.1 ptotal函数查询员工的支出金额 (13)

5.2.2 itotal函数查询员工的收入金额 (14) 5.3 创建登录名和权限 (15) 5.3.1创建用户yy (15) 5.3.2 创建用户xx (15) 5.4 数据库的安全性 (16) 六、总结 (17) 一、需求分析 1.1 需求概述 近年来,随着我国经济实力的不断增强,相关事业单位的基建项目也日渐增多,对其财务管理带来了更大的挑战。在这种背景下,加强事业单位基建财务管理显得尤为重要,为了积极应对国际金融危机的冲击,实现“保增长、保稳定、保民生”目标,按照社会主义市场经济规律的根本要求,全面加强企业单位财务管理编写出财务管理系统,该系统可以给我们提供正确的意见和计划,让消费状况变得更加直观,也便于我们更好更方便的管理公司的财务状况;同时也需要员工管理系统,该系统分析对当今社会的人事管理方面的需求进行了认真

第二章 数据库的创建与管理1

第二章数据库的创建与管理 2.1 SQL Server数据库 2.1.1 数据库的结构 2.1.2 系统数据库 2..2 使用企业管理器创建数据库 2.2.1企业管理器的工作界面 2.2.2企业管理器创建用户数据库 2.2.3向导创建用户数据库 2.3使用T-SQL语句创建数据库 2.3.1查询分析器 2.3.2 用T-SQL语句创建数据库 2.4 修改和删除数据库 2.4.1 修改数据库 2.4.2 删除数据库 2..5 数据库迁移 2.5.1分离和附加数据库 2.5.2 导入和导出数据

2.1 SQL Server数据库 2.1.1 数据库的结构 2.1数据库的存储结构 数据库的存储结构分为逻辑存储结构和物理存储结构两种。 数据库的逻辑存储结构指的是,SQL Server的数据库是由诸如表、视图、索引等各种不同的数据库对象所组成。 数据库的物理存储结构是讨论数据库文件是如何在磁盘上存储的,数据库在磁盘上是以文件为单位存储的,由数据库文件和事务日志文件组成,一个数据库至少应该包含一个数据库文件和一个事务日志文件。 一、数据库文件 1.主数据库文件(Primary Database File) 一个数据库可以有一个或多个数据库文件,一个数据库文件只能属于一个数据库。当有多个数据库文件时,有一个文件被定义为主数据库文件(简称为主文件),其扩展名为mdf 主数据库文件用来存储数据库的启动信息以及部分或者全部数据,是所有数据库文件的起点,包含指向其它数据库文件的指针。一个数据库只能有一个主数据库文件。 2.次数据库文件(Secondary Database File) 用于存储主数据库文件中未存储的剩余数据和数据库对象,一个数据库可以没有次数据库文件,但也可以同时拥有多个辅助数据库文件。 次数据库文件的扩展名为ndf(简称为辅助文件)。 3.事务日志文件 存储数据库的更新情况等事务日志信息,当数据库损坏时,管理员使用事务日志恢复数据库。 每一个数据库至少必须拥有一个事务日志文件,而且允许拥有多个日志文件。事务日志文件的扩展名为ldf,日志文件的大小至少是512KB。 SQL Server事务日志采用提前写入的方式 SQL Server 2000的文件拥有两个名称,即逻辑文件名和物理文件名。当使用Transact-SQL 命令语句访问某一个文件时,必须使用该文件的逻辑名。 物理文件名是文件实际存储在磁盘上的文件名,而且可包含完整的磁盘目录路径。 SQL Server 2000用文件来存放数据库,数据库文件有三类。 1.主数据库文件(Primary):(1)存储数据库的启动信息,是所有数据库文件的起点,包含 指向其它数据库文件的指针 (2)存放数据,每个数据库都必须有一个主数据文件。 2.次要数据文件(Secondary):存放数据,一个数据库可以没有也可以有多个Secondary 文件。 3.事务日志文件(Transaction Log):存放事务日志,每个数据库至少有一个或多个日志文 件。

优秀教案 在演示文稿中创建超级链接

优秀教案在演示文稿中创建超级链接 【教学目标】 知识与技能: 1.了解“超级连接”的概念,以及“超级链接”的形式。 2.学会在幻灯片中制作超级链接的三种方法。 3.通过任务驱动,培养学生对资料的整理和分析能力,以及灵活运用已学知识的能力。 过程与方法:通过教师的演示、学生的任务驱动、学生小组讨论来实现掌握在幻灯片中动作按钮、对象(艺术字、图片、文字)动作设置,培养学生处理信息的发散思维。 情感态度与价值观:培养学生的创新意识和审美观,树立良好的学习习惯。 而、重点: 【教学重难点】 重点:1.了解“超级链接”的概念和用途。 2.掌握、并区分幻灯片中三种形式的超级链接。 难点:在完成任务过程中,灵活运用三种形式的超级链接 【教学过程】 一、导入 师:观看国产动漫的ppt,思考,这个ppt与以前的ppt

在播放顺序上有什么不同。 生: 师:这个ppt可以随心所欲的浏览,有选择性的浏览,提高浏览的效率。 这个功能就是ppt里的“超级链接”,今天我们这节课 就来一起学习怎样《在演示文稿中创建超级链接》。 师:要做成这样一个链接,首先要找到一个作为链接用的对象。 师,生(看课件展示并总结):文字,文本框,图形, 动作按钮 师:可是“超链接”究竟在PowerPoint的哪个菜单呢? 我们先来找找看。 学生找到菜单:插入——超链接 师:找到了超链接,问题就很容易解决了!有没有同学能帮助老师来完成这个操作呢? 学生上台尝试操作。 师:很好,这个同学已经打开了“插入超级链接”对话框。 (学生回答,老师将步骤分别板书在黑板上。 选中“连接点” 单击右键,选中“超链接” 选择“链接目标”)

SQL数据库员工工资管理系统设计

SQL数据库员工工资管理系统设计 实验七:数据库设计 数据库名称:职职员资治理系统 姓名:胡少帅 班级:2011级网络工程 学号:20110441021024 1 需求分析 工资治理系统是提供工资治理人员和职工工资进行治理的系统。它能自动对不同职务,不同出勤及各个月份的工资进行治理并生成财务表。 工资治理系统的用户需求要紧功能有: 1各部门的信息情形 2各职工的信息情形 3考勤信息情形 4工资信息情形 5定义登陆用户和用户的权限 2 概念分析 部门E-R图

职工信息E-R图 职务信息E-R图 考勤信息E-R图 用户E-R图 工资情形E-R图 总E-R图 3 逻辑设计 关系模型: 部门(部门编号(主键),部门名称,经理,电话) 职工信息(职工编号(主键),职务编号,姓名,性不,电话,住址,部门编号(外键)) 考勤情形(职工编号(主键),出勤天数,加班天数,出勤奖金,月份)职务(职务编号(主键),职务名称(主键),差不多工资) 工资运算(职工编号(主键),考勤情形,工资,月份) 用户(用户名,密码,权限) 4 物理设计 1 给职工信息表建立非集合索引“职工” /*给职工信息表非建立集合索引*/

create nonclustered index 职工on 职工信息(职工编号) go SELECT * FROM sys.indexes WHERE name='职工' 2给工资表建立唯独索引“工资” /*给工资表建立唯独索引“工资”*/ create unique index 工资on 工资情形(职工编号) go SELECT * FROM sys.indexes WHERE name='工资' Go 3给考勤信息表建立集合索引“考勤” /*给考勤信息表建立非集合索引*/ create nonclustered index 考勤on 考勤信息(职工编号) go SELECT * FROM sys.indexes WHERE name='考勤' 5 实施过程 创建表结构 1 职工信息表 create table 职工信息

实验2 数据库的创建和管理

实验2 数据库的创建和管理 学号: 2011193158 姓名:韩江玲 一、实验目的: 1、掌握使用企业管理器创建SQL Server数据库的方法; 2、掌握使用T-SQL语言创建SQL Server数据库的方法; 3、掌握附加和分离数据库的方法; 4、掌握使用企业管理器或存储过程查看SQL数据库属性的方法; 5、熟悉数据库的收缩、更名和删除; 6、掌握使用企业管理器或sp_dboption存储过程修改数据库选项的方法。 二、实验内容和步骤: 本次实验所创建数据库(包括数据库文件和事务日志)存放位置都为“D:\TestDB”。因此首先在D盘下新建文件夹TestDB。 1. 数据库的创建 创建数据库的过程实际上就是为数据库设计名称、设计所占用的存储空间和文件存放位置的过程。 实验内容1:使用SQL Server企业管理器创建一个数据库,具体要求如下: 1)数据库名称为Test1。 2)主要数据文件:逻辑文件名为Test1_Data1,物理文件名为Test1_Data1.mdf,初始容量为1MB,最大容量为10MB,递增量为1MB。 3)次要数据文件:逻辑文件名为Test1_Data2,物理文件名为Test1_Data2.ndf,初始容量为1MB,最大容量为10MB,递增量为1MB。 4)事务日志文件:逻辑文件名为Test1_Log,物理文件名为Test1_Log.ldf,初始容量为1MB,大容量为5MB,递增量为1MB。其他选项为默认值。

注:我在创建数据库的时候,系统要求主文件(Test1_data1和Test1_data2)的大小不能小于3MB,所以在本例中我设置的主文件的初始大小均为3MB 实验内容2:用Transact-SQL(T-SQL)语句创建数据库,实验步骤:启动“查询分析器”,在编辑窗口输入SQL语句。 用T-SQL语句创建一个名为teach的数据库,它由5MB的主数据文件、2MB 的次数据文件和1MB的日志文件组成。并且主数据文件以2MB的增长速度增长,其最大容量为15MB;次数据文件以10%的增长速度增长,其最大容量为10MB;事务日志文件以1MB增长速度增长,其最大日志文件大小为10MB。运行完语句后,仔细查看结果框中的消息。 提示:在查询分析器中输入如下SQL语句。 CREATE DATABASE teach On (name= teach_data1, filename= 'd:\TestDB\teach_data1.mdf ', size=5,

数据库管理系统企业员工信息管理

数据库应用技术课程设计说明书题目:企业员工信息管理系统 学院(系): 专业班级: 学号: 学生姓名: 指导教师: 教师职称: 起止时间: 20- 辽宁工业大学课程设计(论文)任务书 院(系):教研室:软件工程

说明:此表一式四份,学生、指导教师、教研室、系部各一份。可加附页。 2011年 12 月 31日

目录 第一章概述 ................................................ 第二章问题定义 ............................................ 第三章需求分析 ............................................ 第四章数据库设计........................................... 第五章界面设计 ............................................ 第六章代码与注释........................................... 设计总结 ................................................... 参考文献 ................................................... 第一章概述 企业人事档案是企业在人事管理活动中形成的重要人事记录。人事档案在发展中 国特色社会主义过程中,是人力资源储备、促进人才合理流动、科学配置和合理使用人才,全面考察了解、正确评价和使用人才的重要依据。但是,有的企业却片面地认为,人事档案不过是人的经历记录,其本身不能直接带来经济效益,管好管坏无所谓,所以 对人事档案工作在管理制度、管理手段、管理模式、管理人员等方面不够重视,存在 着这样和那样的问题,影响了企业的改革和发展。因此,研究开发出一套比较通用、 功能比较完善的企业员工培训管理软件,力求在这一领域取得一些新的成果。 员工管理系统是一个企事业单位不可缺少的部分,它的内容对于企事业单位的决策者和管理者来说都至关重要,所以员工管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

《SQL Server 数据库》数据库存储过程、触发器的创建于管理实验报告

北华航天工业学院《数据库系统管理》 实验报告 报告题目: 存储过程、触发器的创建于管理 所在系部:计算机科学与工程系 所在专业:网络工程专业 学号: 姓名: 教师姓名: 完成时间:2011 年10 月19 日 北华航天工业学院教务处制

存储过程、触发器的创建与管理 一、实验目的 1、掌握存储过程的概念、优点、特点及用途; 2、掌握创建、执行、查看、修改和删除存储过程的方法; 3、了解触发器和一般存储过程的区别、概念及优点; 4、掌握创建、查看、修改和删除触发器的方法。 二、实验内容 (一)附加上次实验所创建的数据库“db_Library”,并回顾该数据库的数据表信息。 (二)练习创建和管理存储过程 1、使用管理控制台创建一个名为“计算机系借阅信息_PROC”的无参存储过程,要求显示计算机系读者2011-1-1以后借阅的图书信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段,并执行该存储过程,查看显示结果。 2、使用T-SQL语句创建一个名为“读者借阅信息_PROC”的带参数的存储过程,要求根据输入的读者的编号显示读者的所有借阅信息,包括“读者编号”、“姓名”、“系部”、“图书编号”、“图书名称”和“借阅日期”等字段,并执行该存储过程,查看显示结果。 create proc读者借阅信息_PROC1 @dzbh char(10) as begin select tb_reader.读者编号,姓名,系部, tb_book.图书编号,书名,借阅日期 from tb_book,tb_reader,tb_borrow where tb_book.图书编号=tb_borrow.图书编号 and tb_reader.读者编号=tb_borrow.读者编号 and tb_reader.读者编号=@dzbh end -- declare @srcs char(10),@fhzt int set @srcs='R10009' exec @fhzt=读者借阅信息_PROC1 @srcs print'执行状态值为'+cast(@fhzt as varchar(10)) 3、使用T-SQL语句创建一个名为“图书借阅信息_PROC”的带参数的存储过程,要求根据输入的图书编号计算该图书的借阅数量,并根据程序执行结果返回不同的值,执行成功返回0,不成

数据库存储过程与触发器实验报告

南昌航空大学实验报告 二00 年月日 课程名称:数据库概论实验名称:数据库存储过程与触发器 班级:122031 姓名:同组人: 指导教师评定:签名: 一、实验环境 1.Windows2000或以上版本; 2.SQLServer 2005。 二、实验目的 熟悉不同数据库的存储过程和触发器,重点实践SQL Server2005,掌握SQL Server2005中有存储过程与触发器的相关知识。 三、实验要求 完成实验指导书中p115-7和p132 -4。 四、实验步骤及参考源代码 1.创建与执行存储过程 create procedure C_P_Proc as select distinct https://www.doczj.com/doc/0a11855247.html,o,cna,pna,num from paper,customer,cp where https://www.doczj.com/doc/0a11855247.html,o=https://www.doczj.com/doc/0a11855247.html,o and paper.pno=cp.pno and cna='李涛' or cna='钱金浩' go execute C_P_Proc 2.删除存储过程 drop procedure C_P_Proc 3.创建插入触发器 create trigger TR_PAPER_I ON PAKER12203125 FOR INSERT AS DECLARE @appr float DECLARE @apno int SELECT @appr=ppr,@apno=pno from inserted begin if @appr<0 or @appr is null begin

raiserror('报纸的单价为空或小于!',16,1) update paper set ppr=10 where paper.pno=@apno end end 4.创建删除触发器 create Trigger TR_PAPER_D on PAKER12203125 after delete as declare @ipno char(6) declare @icount int; select @icount= count(*) from deleted,cp where deleted.pno=cp.pno if @icount>=1 begin select @ipno=pno from deleted raiserror('级联删除cp表中的数据',16,1) delete from cp where cp.pno=@ipno end 5.创建修改触发器 create trigger TR_PAPER_U ON PAKER12203125 for update as declare @ippr float select @ippr=ppr from inserted if @ippr<0 or @ippr is null begin raiserror('输入单价不正确',16,1) rollback transaction end 6. 分别对PAKER12203125表进行插入、修改、删除操作 insert into PAKER12203125 (pno,pna,ppr)values('000006','江西日报','1') insert into PAKER12203125 (pno,pna,ppr)values('000007','江南都市报','15.5') delete from PAKER12203125 where pno='000001' update PAKER12203125 set ppr=12.5 where pno='000002' update PAKER12203125 set ppr=-2 where pno='000004' 五、实验结果

相关主题
文本预览
相关文档 最新文档