TSQL基础与存储过程.ppt

  1. 1、本文档共106页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* -- CREATE TRIGGER ins_trigger -- ON SC FOR INSERT -- AS -- IF (SELECT COUNT(*) FROM STUDENT s , inserted i -- WHERE s.SNO = i.SNO) = 0 -- BEGIN -- RAISERROR (THIS STUDENT IS NOT EXISTS!,1,1) -- ROLLBACK TRANSACTION -- END 触发器 例:对选课表的插入操作定义一个触发器,使得当插入选课记录时,检查相应的学生元组是否存在,如果不存在则撤消所做的插入操作。 * 触发器 例:对学生表的插入操作定义一个触发器,使得当插入记录时,检查相应的学生年龄是否满足条件,如果不存在则显示错误信息。 CREATE TRIGGER stu_tri ON student INSTEAD OF INSERT AS if (SELECT age from inserted)40 ?? print ‘不能插入大于40岁的学生纪录 else ?? insert into student select * from inserted * 练习 当修改学生表student中学生的学号,通过触发器自动更正选课表SC与学生表一致。 * 游标 需要游标的数据操作 当select语句的结果中包含多个元组时,使用游标可以逐个存取这些元组 活动集:select语句返回的元组的集合 当前行:活动集中当前处理的那一行。游标即是指向当前行的指针 * 游标的使用 定义与使用游标的语句 declare 定义一个游标,使之对应一个select语句 declare 游标名 [scroll] cursor for select语句[for update [of列表名]] for update任选项,表示该游标可用于对当前行的修改与删除 * 游标的使用10.9 open 打开一个游标,执行游标对应的查询,结果集合为该游标的活动集 open 游标名 fetch 在活动集中将游标移到特定的行,并取出该行数据放到相应的变量中 fetch [next | prior | first | last | current | relative n | absolute m] 游标名 into [变量表] * 游标的使用 close 关闭游标,释放活动集及其所占资源。需要再使用该游标时,执行open语句 close 游标名 deallocate 删除游标,以后不能再对该游标执行open语句 deallocate 游标名 例:查询电子商务系学生信息,性别为女输出为female,否则输出为male? * declare c1 cursor for select sno,sname,ssex from student where sdept=‘ec’ declare @sno char(10),@sname char(10),@ssex char(2) Open c1 Fetch c1 into @sno,@sname,@ssex While @@fetch_status=0 Begin if @ssex=‘女’ begin set @ssex=‘female end else begin set @ssex=‘male end Select @sno,@sname ,@ssex Fetch c1 into @sno,@sname,@ssex end * 游标的使用 关闭并释放游标 Close c1 deallocate c1(T-sql使用deallocate删除游标引用 ) @@FETCH_STATUS 返回被 FETCH 语句执行的最后游标的状态. 返回值 描述 0 FETCH 语句成功。 -1 FETCH 语句失败或此行不在结果集中。 -2 被提取的行不存在。 * 小结 TSQL 函数 存储过程 触发器 游标 重点掌握存储过程,触发器的使用 练习 定义一个游标,根据学生的平均成绩情况,列出其学号及成绩的等级. =90 优秀 =80 and 90 良好 =60 and 80 合格 60 不合格 成绩表SC(sno,cno,score) select sname 姓名,电子商务=sum(case ame when 电子商务 then sc.grade end), 数据库基础=sum(case ame when 数据库基础 then sc.grade end), 计算机基础=sum(case ame when 计算机基础 then sc.grade end) from student,course,sc wher

文档评论(0)

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

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

1亿VIP精品文档

相关文档