[工学]数据库引论第9章Transact-SQL程序设计.ppt

[工学]数据库引论第9章Transact-SQL程序设计.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]数据库引论第9章Transact-SQL程序设计

9.4.2 声明游标 例9-35 为customer表定义一个全局滚动动态游标,用于访问顾客的编号、姓名、地址、电话信息。 DECLARE cur_customer CURSOR GLOBAL SCROLL DYNAMIC FOR SELECT customer_id,customer_name,address,telphone FROM customer 9.4 游标管理与应用 9.4.3 使用游标 1. 打开游标 游标声明之后,必须打开才能使用。打开游标的语法格式如下: OPEN {{[GLOBAL] cursor_name} | cursor_variable_name } 例如,打开例9-35所声明的游标操作: OPEN cur_customer 9.4.3 使用游标 2. 读取游标 一旦游标被成功打开,就可以从游标中逐行地读取数据,以进行相关处理。从游标中读取数据主要使用FETCH命令。其语法格式为: FETCH [ [NEXT|PRIOR|FIRST|LAST |ABSOLUTE {n|@nvar} |RELATIVE {n|@nvar}] FROM] {{[GLOBAL] cursor_name}| cursor_variable_name } [INTO @variable_name [ ,...n ]] 9.4.3 使用游标 表9-14 @@fetch_status变量 返回值 描 述 0 FETCH命令已成功执行 -1 FETCH命令失败或者行数据己超出了结果集 -2 所读取的数据已经不存在。 9.4.3 使用游标 例9-36 打开例9-35中声明的游标,读取游标中的数据。 OPEN cur_customer FETCH NEXT FROM cur_customer /*取第一个数据行*/ WHILE @@fetch_status = 0 /* 检查@@fetch_status是否还有数据可取*/ BEGIN FETCH NEXT FROM cur_customer END 9.4.3 使用游标 3. 关闭游标 CLOSE的语法格式为: CLOSE {{[ GLOBAL ] cursor_name } | cursor_variable_name } 例如,关闭例9-35中的游标cur_customer的命令: CLOSE cur_customer 游标cur_customer在关闭后,仍可用OPEN语句打开继续读取数据行。 9.4.3 使用游标 4. 释放游标 DEALLOCATE命令删除游标与游标名或游标变量之间的联系,并且释放游标占用的所有系统资源。其语法格式为: DEALLOCATE {{ [ GLOBAL ] cursor_name } | cursor_variable_name } 一旦某个游标被删除,在重新打开之前,必需再次对其进行声明。 例如,释放例9-35所定义的游标cur_customer。 DEALLOCATE cur_customer DEALLOCATE cursor_variable_name语句只删除对游标命名变量的引用。直到批处理、存储过程或触发器结束时变量离开作用域,才释放变量。 9.4 游标管理与应用 9.4.4 游标的应用 1. 用游标修改和删除表数据 定位修改游标数据的语法格式为: UPDATE table_name SET {column_name={expression | DEFAULT | NULL }[, ... n] WHERE CURRENT OF {{[GLOBAL] cursor_name} | cursor_variable_name} 删除游标数据的语法格式为: DELETE FROM table_name WHERE CURRENT OF {{[GLOBAL] cursor_name} | cursor_variable_name} 9.4.4 游标的应用 例9-37 定义游标cur_customer,通过cur_customer更新customer表中的customer_name和linkman_name列。 DECLARE cur_customer CURSOR FOR SELECT * FROM customer FOR UPDATE OF customer_name,linkman_name /*该两列可更新*/ OPEN cur_customer /*打开cur_customer游标*/ FETCH NEXT FROM cur_customer /*将第一行数据放入缓冲区,以便更新操作*/ UPDATE customer SET customer_name=南方

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档