SQL_server基础教程(第二版)董翔英第10章课件教学.pptVIP

  • 0
  • 0
  • 约9.62千字
  • 约 124页
  • 2017-01-07 发布于广东
  • 举报

SQL_server基础教程(第二版)董翔英第10章课件教学.ppt

PPT研究院 POWERPOINT ACADEMY * * 10.2.4 通过游标修改数据   通过游标可以实现更及时和更精确的定位更新。在某些时候,当使用cursor读取某条数据后,可能需要修改或删除该数据,如果此时另外执行UPDATE或DELETE命令,需要在WHERE子句中重新给 出行筛选条件,才能修改到该条数据。如果有多个行满足 UPDATE语句或DELETE语句中 WHERE子句的条件,那么将导致无意识的更新和删除。   为了避免这样的麻烦,可以在 cursor声明中加上FOR UPDATE 子句,这样就可以在UPDATE 或 DELETE命令中使用WHERE CURRENT OF 子句,直接修改或删除当前cursor所指的行数据,而不必重新给定选取条件。当cursor声明中有INSENSITIVE选项或STATIC选项,cursor内的数 据无法被修改,有时即使没有使用 INSENSITIVE选项,但在某些状况下,INSENSITIVE特性仍然会被启动,在这种情况下,该cursor内的数据仍无法被修改。 【例10.6】定义游标,然后打开游标,修改游标内数据。 DECLARE jsy_cur4 CURSOR GLOBAL SCROLL SCROLL_LOCKS FOR SELECT 驾照号, 姓名, 积分 FROM jsy FOR UPDATE OF 积分 OPEN jsy_cur4 FETCH LAST FROM jsy_cur4 UPDATE jsy SET 积分=21 WHERE CURRENT OF jsy_cur4 执行结果如图10.8。   游标内最后一个记录‘林水强’ 的积分为20.0,UPDATE语句将其修改为21。在查询窗口中输入下面语句查询基本表jsy所有数据: SELECT * FROM jsy 执行结果如图10.9。   可看到通过游标的修改影响到 基本表。若输入下面语句: FETCH FIRST FROM jsy_cur4 DELETE FROM jsy WHERE CURRENT OF jsy_cur4 SELECT * FROM jsy 执行结果如图10.10。 图10.10 查询删除数据后的基本表例10.6结果 10.2.5 关闭游标   用CLOSE语句关闭游标,格式为: CLOSE {{[GLOBAL]cursor_name} | @cursor_variable_name} 其参数含义与OPEN语句相同。 如关闭游标jsy_cur4的语句为: CLOSE jsy_cur4 被关闭的游标jsy_cur4其定义仍旧保存在系统内,系统只是释放了该游标内的结果集,可以重新执行OPEN语句打开游标,填充结果集。 当执行COMMIT TRANSACTION 语句或ROLLBACK TRANSACTION 语句结束事务处理时,目前所有已打开 的游标会被关闭。 10.2.6 删除游标   删除游标即删除游标定义,释放 所占用的系统资源,并且无法再重新 打开它,除非重新创建。删除游标使 用DEALLOCATE语句,其语法格式 为:DEALLOCATE {{[GLOBAL]cursor_name} | @cursor_variable_name} 其参数含义与OPEN语句相同。 如删除游标jsy_cur4语句为: DEALLOCATE jsy_cur4 本 章 小 结    游标是SQL Server 2008扩展数据查询功能的工具,使用游标可以对SELECT语句结果集进行再处理。本章介绍数据子集的概念和游标的类型,讲解了SQL Server 2008的四种游标即静态游标、动态游标、 只进游标和键集驱动游标的特点以及游标的一些属性,如只读属、性、滚动属性和可修改属性等。使用游标需要按流程操作,即先声明游标,然后打开游标、读取游标、关闭游标和删除游标, 本章讲解了各种游标操作语句,并通过实例讲解了如何创建各种类型的游标,如何读取游标所标识的结果集的任意行,以及如何通过游标来修改基本表数据方法。 在线教务辅导网: 更多课程配套课件资源请访问在线教务辅导网 馋死 FROM jsy WHERE 所学专业=汽车指挥 【例10.3】声明一快速只进游标,从jsy表中选取xc1表中驾驶车牌号为‘AX1320’的所有驾驶员的驾照号、姓名和积分。 DECLARE jsy_cur3 CURSOR FAST_FORWARD FOR SELECT a.驾照号, a.姓名, a.积分 FROM jsy a, xc1 WHERE a.驾照号=xc1.主驾 AND xc1.车牌号=AX1320‘ 10.

文档评论(0)

1亿VIP精品文档

相关文档