实验八(上):sqlserver用户自定义函数和触发器

实验八(上):sqlserver用户自定义函数和触发器

ID:34761470

大小:179.68 KB

页数:6页

时间:2019-03-10

实验八(上):sqlserver用户自定义函数和触发器_第1页
实验八(上):sqlserver用户自定义函数和触发器_第2页
实验八(上):sqlserver用户自定义函数和触发器_第3页
实验八(上):sqlserver用户自定义函数和触发器_第4页
实验八(上):sqlserver用户自定义函数和触发器_第5页
资源描述:

《实验八(上):sqlserver用户自定义函数和触发器》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验八(上)用户自定义函数和触发器一、实验目的1、掌握SQLServer中用户自定义函数的使用方法。2、掌握SQLServer中触发器的使用方法。二、实验内容和要求1.创建一个返回标量值的用户定义函数RectangleArea:输入矩形的长和宽就能计算矩形的面积。自选2种实例调用该函数。createfunctionRectangleArea(@aint,@bint)returnsintasbeginreturn@a*@benddeclare@areaintexecute@area=RectangleArea3,5print('矩形面积是:')print@areadeclare@areain

2、texecute@area=RectangleArea7,8print('矩形面积是:')print@area2.创建一个用户自定义函数(内嵌表值函数),功能为产生某个系的学生选修信息,内容为学号,姓名,课程名,成绩。调用这个函数,显示信息系有选课学生的信息。createfunctionSearch(@sdeptchar(10))returnstableasreturn(selectsc.sno学号,student.sname姓名,course.cname课程名,sc.grade成绩,student.sdept系别fromsc,student,coursewherecourse.cno=s

3、c.cnoandsc.sno=student.snoandsdept=@sdept)select*fromSearch('cs')1.创建一个作用在P表上的触发器P_checks,确保用户在插入或更新P表的WEIGHT值时,所提供的WEIGHT值介于20与40之间,否则给出错误提示并回滚此操作。请测试该触发器,测试方法自定。createtriggerP_checksonpforinsertasbegindeclare@weightintselect@weight=weightfrominsertedif@weight<10or@weight>20beginRAISERROR('weight

4、必须在~20之间!',16,1)ROLLBACKTRANSACTIONendendinsertintop(pno,pname,color,weight)values('p7','刀片','红',40)insertintop(pno,pname,color,weight)values('p7','刀片','红',15)select*fromp1.创建一个作用在J表上的触发器J_Update,禁止同时修改项目的名称和所在城市,并进行相应的错误提示。请测试该触发器。测试方法自定。createtriggerJ_Updateonjforupdateasbegindeclare@jname1char(

5、10),@city1char(10),@jname2char(10),@city2char(10)select@jname1=jname,@city1=cityfrominsertedselect@jname2=jname,@city2=cityfromdeletedif@jname1<>@jname2and@city1<>@city2beginRAISERROR('不能同时修改项目名称和项目地点!',16,1)ROLLBACKTRANSACTIONendendupdatejsetjname='建筑',city='上海'wherejno='j1'updatejsetjname='建筑'wh

6、erejno='j1'select*fromj1.学生表(Student)中存放学生的记录,学生选修表(SC)中存放学生的修课及成绩情况。创建一个触发器ScDel_Cascade,当删除Student中的数据时,数据表SC中有关刚刚删除学生的修课成绩信息也能被级联删除掉。测试该触发器,测试方法自定。createtriggerScDel_Cascadeonstudentfordeleteasbegindeclare@snochar(10)select@sno=snofromdeleteddeletefromscwheresno=@snoenddeletefromstudentwheresna

7、me='李勇'select*fromscselect*fromstudent附加题:创建一个用户自定义函数,功能为产生一张有关学生成绩统计的报表。该报表显示每一门课程的课程号、课程名、选修人数、本门最高分、最低分和平均分。调用这个函数,生成相应的报表并给用户浏览。(多语句表值函数)显示形式如下:CnoCnameSC_numberMax_gradeMin_gradeAverage_grade----------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。