11.存储过程 触发器 游标.ppt

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

2. 游标的优点 (1)允许程序对由查询语句SELECT返回的行集合中的每一行执行相同或不同的操作 (2)提供对基于游标位置的表中的行进行删除和更新的能力。 (3)作为面向集合的数据库管理系统(DBMS)和面向行的程序设计之间的桥梁。 3. 声明游标 DECLARE cursor_name CURSOR FOR select_statement [FOR {READ ONLY | UPDATE [OF column_name_list[, …]]}] 打开游标 OPEN {[GLOBAL] cursor_name | @cursor_variable_name} 2. 读取游标中的数据 一旦游标被打开,就可以从该游标集合中读取数据了。从游标中得到一行数据的操作称为一个FETCH。FETCH操作包含: 使用游标 FETCH FIRST:获取游标中的第一行数据。 FETCH NEXT:获取下一行数据。 FETCH PRIOR:获取上一行数据。 FETCH LAST:获取游标中最后行数据。 FETCH ABSOLUTE n:如果n是一个正整数,则该操作会获取游标中从第一行开始的n行数据;如果n是一个负整数,那么该操作会获取游标中从末尾行向前数的n行数据。如果n是0则不会获取数据。 FETCH RELATIVE n:相对上一个被获取的行而言,该操作将获取该行前面或者后面的n行数据。如果n是正数,则获取该行之后的n行数据。如果n是负数,则获取该行之前的n行数据。如果n的值是0,则再次获取该行的数据。 3. 使用游标修改数据 游标不仅能够读取表中的数据,同时还可修改(更新和删除)表中的行。SQL Server提供了WHERE CURRENT OF cursor_name子句对游标集合中的当前行进行更新和删除操作。 使用游标 @@fetch_status=0,1,-2 P237 用游标读取记录 DECLARE cur1 CURSOR FOR select * from student Open cur1 Fetch next from cur1 While @@fetch_status=0 begin Fetch next from cur1 end 用游标修改记录 DECLARE cur3 CURSOR FOR select * from student Open cur3 Fetch next from cur3 update student set age=60 where current of cur3 Close cur3 用游标删除记录 DECLARE cur2 CURSOR FOR select * from student Open cur2 Fetch next from cur2 Delete student where current of cur2 Close cur2 定义一个游标,更新学生表中的数据,男同学年龄减2分,女同学年龄减1分 open my_cur fetch next from my_cur into @sex, @age while @@fetch_status=0 begin if @sex='男' begin update Student set age=@age-2 where current of my_cur end else begin update Student set age=@age-1 where current of my_cur end fetch next from my_cur into @sex, @age end declare @sex varchar(2) declare @age int declare my_cur cursor for select sex,age from Student close my_cur deallocate my_cur 触发器是一种特殊类型的存储过程。 存储过程是通过存储过程名被调用执行的 触发器主要是通过事件触发而被执行的。 任何用户对该触发器指定的数据进行增加、删除或修改操作时,系统将自动激活相应的触发器。 触发器的创建与管理 2. 触发器的优点 (1)强制比CHECK约束更复杂的数据的完整性; (2)使用自定义的错误提示信息; (3)实现数据库中多张表的级联修改; (4)比较数据库修改前后数据的状态; (5)维护规范化数据。 创建触发器 使用CREATE TRIGGER命令创建触发器 CREATE TRIGGER trigger_ nam

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档