实验五存储过程和触发器

实验五存储过程和触发器

ID:38698658

大小:44.50 KB

页数:6页

时间:2019-06-17

实验五存储过程和触发器_第1页
实验五存储过程和触发器_第2页
实验五存储过程和触发器_第3页
实验五存储过程和触发器_第4页
实验五存储过程和触发器_第5页
资源描述:

《实验五存储过程和触发器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验五存储过程和触发器【实验目的】理解存储过程概念、类型;掌握各种存储过程创建方法和查看、修改、删除存储过程方法。【实验内容】1、使用T-SQL语句创建存储过程(1)创建不带参数存储过程1)创建一个从student表查询学号为95002学生信息的存储过程proc_1,其中包括学号、姓名、性别、出生日期、系别等;调用过程proc_1查看执行结果。2)在选课系统数据库中创建存储过程proc_2,要求实现如下功能:产生学分为4的课程学生选课情况列表,其中包括学号、姓名、性别、课程号、学分、系别等。调用过程pro

2、c_2查看执行结果。(2)创建带参数存储过程创建一个从student表中按学生学号查询学生信息的存储过程proc_3.其中包括:学号、姓名、性别、出生日期、系别等。查询学号通过执行语句中输入。(3)创建带输出参数存储过程创建一个从sc表查询一门课程考试成绩总分存储过程proc_4,要求查询的课程号通过执行语句中的输入参数@course_no传递给存储过程,s@sum_grade作为输出参数用来存放查询得到的总分。执行此过程时用declare声明临时变量@sum_grade_output接收查询的总分。参考

3、:use选课系统gocreateprocstudent_proc4@startdatedatetime,@enddatedatetime,@recordcountintoutputAsIf@startdateisnullor@enddateisnullBeginRaiserror(‘nullvalueareinvalid’,5,5)ReturnEndSelect*from学生信息表Wherebirthdaybetween@startdateand@enddateSelect@recordcount=@@r

4、owcountgo执行语句:use选课系统godeclare@recordnintexecstudent_proc4'01/01/1988','01/01/1990',@recordnoutputprint'theordercountis:'+str(@recordn)(4)创建带重编译和加密的存储过程在sc表中创建一个带创建带重编译和加密的存储过程proc_exp5,要求实现如下功能:输入学生学号、根据该生选课的总学分显示提示信息,如果总学分<9,则显示“此学生学分不足”,否则显示“此学分已足”。调用过

5、程proc_4查看执行结果。参考:Use选课系统GoCreateprocproc_exp4@nochar(5)AsDeclare@savgtinyint/*inyint从0到255的整型数据。存储大小为1字节。*/Select@savg=avg(grade)fromscWheresno=@noIf@savg>60Print'该学生综合成绩合格,成绩为'+convert(char(2),@savg)+'分'ElsePrint'该学生综合成绩不合格,成绩为'+convert(char(2),@savg)+'分

6、'go执行:Use选课系统GoExecproc_exp4‘95001’2、使用T—SQL语句查看、修改和删除存储过程(1)查看存储过程proc_2、proc_5定义(2)删除存储过程proc_13、使用T—SQL语句实现触发器定义。(1)为表sc创建一个插入触发器,当向表sc中插入数据时,如果成绩grade大于等于60分,该生就能得到相应学分,否则得不到学分。Use选课系统GoIfexists(selectnamefromsysobjectswherename='credit_insert'andtype

7、='tr')Droptriggercredit_insertgocreatetriggercredit_insertonscforinsertasdeclare@credit0tinyintdeclare@grade0tinyintselect@grade0=inserted.gradefrominsertedselect@credit0=course.creditfromcourse,insertedwherecourse.cno=inserted.cnoif(@grade0>=60)beginupda

8、tescsetsc.credit=@credit0fromsc,insertedwheresc.cno=inserted.cnoandsc.sno=inserted.snoendgo执行:Use选课系统GoInsertintosc(sno,cno,grade,credit)Values(95001,’001’,80,0)(2)为表student创建一个删除触发器,当删除表student中一个学生的资料时,将表sc中相应的成绩数

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

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

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