收藏 分享(赏)

实验六 过程语言.doc

上传人:HR专家 文档编号:8480643 上传时间:2019-06-29 格式:DOC 页数:8 大小:48.60KB
下载 相关 举报
实验六 过程语言.doc_第1页
第1页 / 共8页
实验六 过程语言.doc_第2页
第2页 / 共8页
实验六 过程语言.doc_第3页
第3页 / 共8页
实验六 过程语言.doc_第4页
第4页 / 共8页
实验六 过程语言.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、实验六 过程语言 一、 实验目的:通过本次实验,要求掌握变量定义,流程控制,存储过程,存储函数,游标等内容。二、 实验内容:1)变量的声明和使用,掌握ERROR 、ROWCOUNT、IDENTITY 等全局变量的使用。2)使用 BEGINEND、IFELSE 、 WHILECONTINUEBREAK、CASE 等流程控制语句。3)使用存储过程。4)使用系统函数和用户自定义函数。5)使用游标处理数据。三、 实验步骤:1) 用 T-SQL 语言完成 1+3+5+199,并使用ERROE 判断是否执行成功,如果成功则输出值,否则打印执行失败。使用 WHILE 语句实现。declare sum int

2、declare i intset sum=0set i=1while(i=80 then 优when score =60 then 及格when score ( 参数 数据类型 = 默认值 OUTPUT , n ) WITH RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTIONASn执行已存在的存储过程使用语句格式如下:EXECUTE 存储过程名 输入参数值执行创建的存储过程,通过输出参数分析执行结果。 函数用户自定义函数分为:标量值函数、内联表值函数、多语句表值函数。创建多语句内联表值函数,要求根据课程名称查询所有选修些课程的学生姓名和分数。提示:CR

3、EATE FUNCTION ()RETURNS tb_scores TABLE()ASBEGININSERT tb_scoresSELECTRETURNENDhttp:/ 游标不同于查询语句,查询语句只能参整个结果集进行同一种操作,而游标允许定位在结果集的特定行,从结果集的当前位置检索一行或多行,支持对结果集中当前位置的行进行数据修改,为由其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持,提供脚本、存储过程和触发器中用于访问结果集中数据的 T-SQL 语句。使用游标必须按照下面顺序:声明游标,打开游标,读取游标中的数据,关闭游标,释放游标。游标声明:DECLARE INS

4、ENSITIVE SCROLL CURSORFOR FOR READ ONLY | UPDATE OF 打开游标:OPEN GLOBAL | 提取数据:FETCH NEXR | PRIOR | FIRSR | LAST | ABSOLUTE n | 整型变量 | RELATIVE n | 整型变量 FROM GLOBAL | 游标变量名 INTO 变量名列表 关闭游标:CLOSE GLOBAL | 释放游标:DEALLOCATE GLOBAL | http:/ 实验内容创建一个存储过程,该存储过程实现的功能:查找出选修 database 课程并且期末成绩为不及格(score,要求用函数实现该显

5、示功能;2、 加分使用游标实现;3、 存储过程输入参数为:。create function printInfor(cname varchar(50),sname varchar(20),score_before int,score_after int)returns nvarchar(max)asbegindeclare string nvarchar(max)set string=return stringenddrop proc addscorealter proc addscore(cname char(50),score_increase int)asbegindeclare curs

6、or1 cursor for select sname,cname,score,(score+score_increase) as score_after from students,courses,choices where students.sid=choices.sid and courses.cid=choices.cid and choices.score60open cursor1declare ccname varchar(50)declare sname varchar(20)declare score_before intdeclare score_after intfetc

7、h next from cursor1 into sname,ccname,score_before,score_afterwhile(fetch_status =0)beginupdate choices set score=score_after where sid in (select sid from students as s where s.sname=sname) and cid in(select cid from courses as c where ame=ccname)if(score_after60)beginprint dbo.printInfor(ccname,sname,score_before,score_after)endfetch next from cursor1 into sname,ccname,score_before,score_afterendclose cursor1deallocate cursor1endexec addscoredatabase,5四 心得体会

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报