免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统概论实验报告实验题目:实验八(上) 用户自定义函数和触发器日期2013.6.18班级计算机1105姓名潘聪3110305129实验环境:SQL Server 2005实验目的:1、掌握SQLServer中用户自定义函数的使用方法。2、掌握SQL Server中触发器的使用方法。实验内容:1. 创建一个返回标量值的用户定义函数 RectangleArea:输入矩形的长和宽就能计算矩形的面积。自选2种实例调用该函数。create function RectangleArea(a int,b int) returns intasbeginreturn a*benddeclare area intexecute area=RectangleArea 3,5print (矩形面积是:)print areadeclare area intexecute area=RectangleArea 7,8print (矩形面积是:)print area2. 创建一个用户自定义函数(内嵌表值函数),功能为产生某个系的学生选修信息,内容为学号,姓名,课程名,成绩。调用这个函数,显示信息系有选课学生的信息。create function Search (sdept char(10) returns tableasreturn (select sc.sno 学号,student.sname 姓名,ame 课程名,sc.grade 成绩,student.sdept 系别from sc,student,course where o=o and sc.sno = student.sno and sdept=sdept)select * from Search(cs)3. 创建一个作用在P表上的触发器P_checks,确保用户在插入或更新P表的WEIGHT值时,所提供的WEIGHT值介于20与40之间,否则给出错误提示并回滚此操作。请测试该触发器,测试方法自定。create trigger P_checks on p for insert asbegindeclare weight intselect weight=weight from insertedif weight20begin RAISERROR(weight 必须在20之间!,16,1)ROLLBACK TRANSACTIONendendinsert into p(pno,pname,color,weight) values(p7,刀片,红,40)insert into p(pno,pname,color,weight) values(p7,刀片,红,15)select * from p4. 创建一个作用在J表上的触发器J_Update,禁止同时修改项目的名称和所在城市,并进行相应的错误提示。请测试该触发器。测试方法自定。create trigger J_Update on j for updateasbegindeclare jname1 char(10),city1 char(10),jname2 char(10),city2 char(10) select jname1=jname,city1= city from insertedselect jname2=jname,city2= city from deletedif jname1jname2 and city1city2beginRAISERROR(不能同时修改项目名称和项目地点!,16,1)ROLLBACK TRANSACTIONendendupdate j set jname=建筑 ,city=上海 where jno=j1update j set jname=建筑 where jno=j1select * from j5. 学生表(Student)中存放学生的记录,学生选修表 (SC) 中存放学生的修课及成绩情况。创建一个触发器ScDel_Cascade,当删除Student中的数据时,数据表SC中有关刚刚删除学生的修课成绩信息也能被级联删除掉。测试该触发器,测试方法自定。create trigger ScDel_Cascade on student for deleteasbegindeclare sno char(10)select sno=sno from deleteddelete from sc where sno=sno enddelete from student where sname=李勇select * from scselect * from student附加题:创建一个用户自定义函数,功能为产生一张有关学生成绩统计的报表。该报表显示每一门课程的课程号、课程名、选修人数、本门最高分、最低分和平均分。调用这个函数,生成相应的报表并给用户浏览。(多语句表值函数)显示形式如下:Cno Cname SC_number Max_grade Min_grade Average_grade- - - - - -1 数据库 3 92 92 92.02 数学 2 85 80 82.03 信息系统 1 88 88 88.04 操作系统 1 NULL NULL NULL5 数据结构 1 NULL NULL NULL6 数据处理 2 55 55 55.07 PASCAL语言 1 NULL NULL NULL(7 行受影响)select * from sc,student,course where o = o and student.sno = sc.snocreate function studentgrade() returns tableasreturn(select o Cno,ame Cname, count(sc.sno) SC_number, max(sc.grade) Max_grade, min(sc.grade) Min_grade, avg(sc.grade) Average_gradefrom sc,student,course where sc.sno = student.sno and o = o group by o,ame)select * from studentgrade()出现的问题: 本实验中,主要学习和运用了自定义函数,经过这次实验对数据库的学习更加有浓厚的兴趣了,数据库编程也是非常有意思的一门学问,对sqlserver的理解又深入了一层!解决方案(列出遇到的主要问题和解决办法,列出没有解决的问题):与任何函数一样,用户定义函数是可返回值的例程。根据所返回值的类型,每个用户定义函数可分成以下三个类别:1、返回可更新数据表的函数:如果用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年平潭基础设施建设合同二篇
- 服装尾货处理销售合同范本
- 化学药品集中采购制度
- 广告项目采购制度
- 区级采购办内部控制制度
- 公司报销采购流程制度
- 小型企业采购制度范本
- 医疗采购日常管理制度
- 幼儿园教师用品采购制度
- 浙江省杭州二中2025学年第二学期高三年级三月月考物理+答案
- 2025咨询《工程项目组织与管理》冲关宝典
- 第五届国家级新区经开区高新区班组长管理技能大赛备赛试题库-上(单选题)
- 《钢筋桁架楼承板应用技术规程》TCECS 1069-2022
- 绿色算力发展研究报告(2025年)
- 2025年春节后家具制造行业复工复产安全技术措施
- 毕业设计(论文)-剪叉式液压升降台设计
- 渝22TS02 市政排水管道附属设施标准图集 DJBT50-159
- 装修工程服务方案(3篇)
- 《房屋市政工程生产安全重大事故隐患判定标准》解读与培训
- 小学音乐外婆的澎湖湾教案
- 铣刀具刃磨培训
评论
0/150
提交评论