第十二章游标和触发器.ppt

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

第十二章  游标和触发器 预习检查 什么是 游标? 怎么创建和应用游标? 什么是触发器? 触发器应用类型? 本章任务 创建游标 创建触发器 本章目标 了解游标的优点 掌握常游标的使用 了解触发器的作用 掌握如何创建触发器 关系数据库中的操作会对整个行集产生影响。由 SELECT 语句返回的行集包括所有满足该语句WHERE子句中条件的行。由语句所返回的这一完整的行集被称为结果集。应用程序,特别是交互式联机应用程序,并不总能将整个结果集作为一个单元来有效地处理。这些应用程序需要一种机制以便每次处理一行或一部分行。游标就是提供这种机制的结果集扩展。 游标是指向查询结果集的一个指针,它是一个通过定义语句与一条Select语句相关联的一组SQL语句。 什么是游标 游标的作用 允许定位在结果集的特定行 支持对结果集中当前位置的行进行数据修改 游标的优点 在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。 创建游标 定义游标 打开游标 操作数据 关闭游标 创建游标语法 定义游标 Declare 游标名称 Cursor For 查询语句 [for{read only|update[of colum_name_list]}] 打开游标 open 游标名 操作数据 Fetch 游标名[into 变量列表] 关闭游标 close 游标名 deallocater cursor 游标名 游标示例(计算成绩表中的学分) Declare @XF int DECLARE Score_cursor CURSOR FOR SELECT ID, StuNO, SubID, Score FROM Scorelue OPEN Score_cursor FETCH NEXT FROM Score_cursor INTO @ID, @StuNO, @SubID, @Score 游标示例(计算成绩表中的学分) WHILE @@FETCH_STATUS = 0 BEGIN Select @XF=XF From SubjectInfo Where SubID=@SubID UpDate Score Set @SXF=@Score/100*@XF Where ID=@ID FETCH NEXT FROM Score_cursor INTO @ID, @StuNO, @SubID, @Score END CLOSE Score_cursor DEALLOCATE Score_cursor 用游标修改当前行 WHILE @@FETCH_STATUS = 0 BEGIN UpDate Score Set @SXF=@Score/100*@XF where current of Score_cursor FETCH NEXT FROM Score_cursor INTO @ID, @StuNO, @SubID, @Score END 触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。触发器可以查询其它表,而且可以包含复杂的 SQL 语句。它们主要用于强制复杂的业务规则或要求。 触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。 什么是触发器 触发器是自动的:它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。 触发器可以通过数据库中的相关表进行层叠更改。 触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。与 CHECK 约束不同的是,触发器可以引用其它表中的列。 触发器可以用于跟踪。 触发器的优点 CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] { ????{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] } ????????[ WITH APPEND ] ????????[ NOT FOR REPLICATION ] ????????AS ????????[ { IF UPDATE ( column ) ????????????[ { AND | OR } UPDATE ( column ) ] ???????????????

文档评论(0)

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

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

1亿VIP精品文档

相关文档