- 1、本文档共82页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【技能目标】 学会使用游标;理解事务的概念并学会基本的事务操作;理解并发控制的基本方法。 【知识目标】 理解游标的概念;掌握定义游标的方法;掌握游标的使用方法;理解事务的概念和属性;掌握基本的事务操作;了解并发控制的基本方法。 执行SELECT语句进行查询时返回一个结果集,结果集只能作为一个整体进行处理,而不能对其中的部分行做单独处理。但是在实际应用开发中,往往需要对结果集中的不同行进行不同的处理,游标正是SQL Server提供的一种机制,它能够对结果集进行逐行处理,其工作方式类似于指针,可以指向结果集中的任意位置以此对指定位置的数据进行处理。 使用游标要遵循“定义游标→打开游标→读取游标→关闭游标→释放(删除)游标”的顺序。 定义游标使用DECLARE CURSOR语句,有两种语法格式:一种是SQL-92标准的游标定义,另一种是Transact-SQL扩展的游标定义。 1. ?SQL-92标准的游标定义 SQL-92标准游标定义的语法格式如下: DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR FOR select_statement [FOR {READ ONLY | UPDATE [ OF column_name [,…n]]}] 参数说明如下: ● ?cursor_name:游标名。必须遵从标识符命名规则。 ● ?INSENSITIVE:定义一个游标,以创建将由该游标使用的数据的临时副本。对游标的所有请求都从tempdb中的临时表中得到应答,因此,在对该游标进行提取操作时返回的数据中不反映对基表所做的修改,并且该游标不允许修改。 ● ?SCROLL:说明所定义的游标可以前滚、后滚,可使用所有的提取选项(FIRST,LAST,PRIOR,NEXT,RELATIVE,ABSOLUTE)。如果省略SCROLL,则只能使用NEXT提取选项。 ● ?select_statement:SELECT语句。由该查询产生与所定义的游标相关联的结果集。在SELECT语句中不能出现COMPUTE、COMPUTE BY、FOR BROWSE和INTO这样的关键字。 ● ?READ ONLY:说明所定义的游标是只读的。 ●?UPDATE [OF column_name [,…n]]:定义游标内可更新的列。如果指定OF column_name [,…n]参数,则只允许修改所列出的列。如果在UPDATE中未指定列的列表,则可以更新所有列。 【例13-1】 在学生成绩管理系统数据库SCMS中,定义一个查询学生表student的 游标。 DECLARE cur_student1 CURSOR FOR SELECT sno,sname,ssex,borndate FROM student 【例13-2】 将查询系部表department的结果集定义一个只读游标。 DECLARE cur_department CURSOR FOR SELECT * FROM department FOR READ ONLY 【例13-3】 将例13-1定义的游标cur_student1定义成可更新的游标。 DECLARE cur_student1 CURSOR FOR SELECT sno,sname,ssex,borndate FROM student FOR UPDATE 2.? Transact-SQL扩展的游标定义 Transact-SQL扩展的游标定义的语法格式如下: DECLARE cursor_name CURSOR [LOCAL | GLOBAL] [FORWARD_ONLY | SCROLL] [STATIC | KEYSET | DYNAMIC | FAST_FORWARD] [READ_ONLY | SCROLL_LOCKS | OPTIMISTIC] [TYPE_WARNING] FOR select_statement [FOR UPDATE [OF column_name [,…n]]] 参数说明如下: ● ?LOCAL | GLOBAL:说明游标的作用域。若两者均未指定,则默认值由default to local cursor数据库选项的设置控制。 ● ?FORWARD_ONLY | SCROLL:说明游标的移动方向。FORWARD_ONLY表示只能从第一行滚动到最后一行。SCROLL的含义与SQL-92标准相同。 ● ?STATIC | KE
文档评论(0)