数据库实验六副本.docVIP

  • 41
  • 0
  • 约1.48千字
  • 约 6页
  • 2017-06-05 发布于湖北
  • 举报
计算机科学系实验报告 (首页) 课程名称 数据库系统概论 班 12 级 网络工程 实验名称 实验六:触发器和存储过程 指导教师 索剑 姓名 李文森 学 号 1214080613213 日 期 2014.06.10 一、实验目的 实现简单的触发器和存储过程编制,了解触发器和存储过程作用。 二、实验设备与环境 SQL SERVER 2000,XP 系统 三、实验内容、程序清单及运行结果 实验内容:使用SQL语言书写触发器和存储过程。 程序清单及运行结果 用触发器实现如下功能; 设有两个数据表XX和YY,结构如下: 要求用触发器实现 若在XX表中输入一个记录,则在YY表中追加相同记录;若在XX表中更新一个记录的MONEY字段,则在YY表中更新相应记录的相同MONEY字段。 1. create trigger tri1 on xx for insert as begin declare @a int; declare @b varchar(10); declare @c varchar(10); select @a=xid,@b=xname,@c=xmoney from inserted; insert into yy values(@a,@b,@c); end INSERT INTO XX values(1,aaa,100); 2. create trigger tri2 on xx for update as begin declare @d varchar(10); select @d=xmoney from inserted; update yy set ymoney=@d; end 在“学生-课程”数据库中用存储过程实现如下功能: 实现查询“95001”同学所有的选修课程和成绩; create procedure pro1 as begin select * from SC where sno=95001; end 用参数传递实现查询“95001”同学所有的选修课程和成绩; create procedure pro2(@sno varchar(10)) as begin select * from SC where sno=@sno; end 在Course表中增加一门课程,若已存在该课程即退出;若不存在即为某个指定系的学生增加选修这门课程,返回选修人数。 create procedure pro3(@cno1 varchar(10),@cname1 varchar(10), @sdept1 varchar(10)) as declare @cno2 varchar(10); declare @sno1 varchar(10); select @cno2=Cno from course where cno=@cno1 and cname=@cname1; if @cno2 is null begin insert into Course(Cno,Cname) values(@cno1,@cname1); insert into SC(Sno,Cno) select Sno,@cno1 from Student where Sdept=@sdept1; select count(*) 选修人 from SC where Cno=@cno1; end

文档评论(0)

1亿VIP精品文档

相关文档