欢迎来到天天文库
浏览记录
ID:33591771
大小:720.18 KB
页数:32页
时间:2019-02-27
《sql数据库原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、例1:声明一个标准游标,结果集为“学生”表中所有的男同学USE学生管理DECLARE男同学CURSORFORSELECT*FROM学生WHERE性别=1GO1例2:声明一个只读游标,结果集为“学生”表中所有的男同学USE学生管理DECLARE男同学CURSORFORSELECT*FROM学生WHERE性别=1FORREADONLYGO2例3:声明一个游标,结果集为“学生”表中所有的男同学,然后打开此游标。USE学生管理DECLARE男同学CURSORFORSELECT*FROM学生WHERE性别
2、=1OPEN男同学GO3例4:打开一个不存在的游标USE学生管理OPENtmp_curGO因为游标tmp_cur不存在,所以返回结果为:服务器:消息16916,级别16,状态1,行4名为'tmp_cur'的游标不存在。4例5:打开一个已经打开的游标USE学生管理DECLARE男同学CURSORFORSELECT*FROM学生WHERE性别=1OPEN男同学OPEN男同学GO因为游标男同学已经被打开了,所以返回结果为:服务器:消息16905,级别16,状态1,行5游标已打开。5例6:声明
3、一个游标,结果集为“学生”表中所有的男同学,然后打开此游标,并读取第一行数据。USE学生管理DECLARE男同学CURSORFORSELECT*FROM学生WHERE性别=1OPEN男同学FETCHNEXTFROM男同学GO运行结果6例7:声明一个游标,结果集为“学生”表中所有的男同学,然后打开此游标,并读取最后一行数据。USE学生管理DECLARE男同学SCROLLCURSORFORSELECT*FROM学生WHERE性别=1OPEN男同学FETCHLASTFROM男同学GO运行结果7通过游标
4、更新数据语法格式:updatefrom表或视图set列名=表达式,…wherecurrentof游标名功能:修改当前行指定字段的值。8通过游标删除数据语法格式:deletefrom表或视图wherecurrentof游标名功能:删除游标名指定的当前行数据。91011例9:验证CURSOR_STATUS函数的使用方法。USE学生管理DECLARE男同学SCROLLCURSORFORSELECT*FROM学生WHERE性别=1PRINTCURSOR_STATUS('global','男同学')OPEN男同学PR
5、INTCURSOR_STATUS('global','男同学')GO执行结果为:-1112例10:通过使用@@FETCH_STATUS函数输出游标中的所有记录。USE学生管理DECLARE男同学SCROLLCURSORFORSELECT*FROM学生WHERE性别=1OPEN男同学FETCHNEXTFROM男同学WHILE(@@FETCH_STATUS=0)FETCHNEXTFROM男同学GO13例11:关闭一个已经打开的游标,然后声明一个同名游标USE学生管理DECLARE男同学SCROL
6、LCURSORFORSELECT*FROM学生WHERE性别=1OPEN男同学CLOSE男同学DECLARE男同学SCROLLCURSORFORSELECT*FROM学生WHERE性别=1GO运行结果为:服务器:消息16915,级别16,状态1,行7名为'男同学'的游标已存在。14综合示例15例1a在创建一个存储过程时,如果已经存在同名的存储过程,则不允许创建新的存储过程。可以将以上代码改写为:USE学生管理--如果存在名称为“增加成绩”的存储过程,则将其删除IFEXISTS(SELECTna
7、meFROMsysobjectsWHEREname='增加成绩'ANDtype='P')DROPPROCEDURE增加成绩GOCREATEPROCEDURE增加成绩ASUPDATE学生SET入学成绩=入学成绩*1.1GO161718例6创建存储过程AvgScore1,根据给定的院系和班级名称计算平均成绩,并将结果使用输出参数返回。如果指定的院系存在,则返回1,否则返回0。CREATEPROCEDUREAvgScore1@orgvarchar(100),@classvarchar(50),@sco
8、refloatOUTPUTASDECLARE@orgidintSET@orgid=019例6(续)--根据参数中指定的院系名称org,获取院系编号SELECT@orgid=记录编号FROM院系WHERE院系名称=@orgIF@orgid=0RETURN0ELSEBEGINSELECT@score=AVG(入学
此文档下载收益归作者所有