- 1、本文档共106页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 INSERTASif (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
您可能关注的文档
最近下载
- 2024《学前教育法》解读PPT课件.pptx
- 康明发 K280水平关节机器人说明书3.pdf
- 过程控制系统(毕业论文)精馏塔控制系统设计.doc
- 2025年南京市河西新城区国有资产经营控股集团有限责任公司人员招聘笔试模拟试题及答案解析.docx VIP
- 金堂县自来水红旗水库取水工程——原水输水管道复线工程非重大变动环境影响分析.pdf
- 医疗器械的人类受试者临床研究-临床试验质量管理规范(ISO 14155 :2020)中文版.pdf VIP
- 2025年学校体育活动经费预算计划.docx VIP
- 打造企业文化之基助力企业和谐发展.pdf VIP
- 动火作业安全培训.ppt VIP
- BM11_05_BladeEditor.ppt VIP
文档评论(0)