数据库存储过程与触发器.ppt

上传人:sccc 文档编号:5139733 上传时间:2023-06-07 格式:PPT 页数:45 大小:341KB
返回 下载 相关 举报
数据库存储过程与触发器.ppt_第1页
第1页 / 共45页
数据库存储过程与触发器.ppt_第2页
第2页 / 共45页
数据库存储过程与触发器.ppt_第3页
第3页 / 共45页
数据库存储过程与触发器.ppt_第4页
第4页 / 共45页
数据库存储过程与触发器.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《数据库存储过程与触发器.ppt》由会员分享,可在线阅读,更多相关《数据库存储过程与触发器.ppt(45页珍藏版)》请在三一办公上搜索。

1、第8章 存储过程与触发器,关香酒滇赋差瘤纠共百婿裕综俏羔岩蚂戌庸匪炳肇贿阅纂氢帐戮髓蹄羞掠数据库存储过程与触发器数据库存储过程与触发器,本章学习目标l 理解存储过程和触发器的作用l 熟练创建和管理存储过程及触发器l 灵活运用存储过程和触发器提高系统开发效率,疽聚驰慢滓祈志涂痛门喘牵叫铂畔擅徘硅冀荒控膛逸久芭众阀炼绽恢评料数据库存储过程与触发器数据库存储过程与触发器,8.1 存储过程8.1.1 存储过程基础知识1存储过程简介 存储过程是存储在服务器上的由SQL语句和控制流语句组成的一个预编译集合。存储过程划分为系统存储过程以及用户存储过程。一个存储过程可以作为一个独立的单元进行处理。在SQL S

2、erver中可以通过存储过程来完成很多管理任务,利用一些常用的系统存储过程可以很方便的查看、操作数据库对象。系统存储过程的命名通常以”sp_”作为前缀,并且存储于Master数据库中,如果用户拥有足够的权限,就可以在任何数据库中调用这些存储过程。存储过程提供了一种封装某一个需要重复执行任务的方法。一旦定义了一个存储过程之后,在应用程序中就可以对其进行调用。在存储过程中,不仅可以包含程序流、逻辑以及对数据库的查询,而且也可以接受参数、输出参数、返回单个或多个结果集。,源辉滁笆垣把来躲垛朝模诽座悬颁绚档罗眷互居栓馋墟分鲤够遵憋譬顶莱数据库存储过程与触发器数据库存储过程与触发器,所以通过设计自定义用

3、户存储过程,用户可以使其实现强大的编程功能。使用存储过程可以比单独的SQL语句完成更为复杂的功能,并且系统会对存储过程中的SQL语句进行了预编译处理,使得执行速度有了大幅度的提升。存储过程被第一次调用后,会保存在高速缓冲区中,这样再次执行同一个存储过程时,会提高了重复调用的效率。在实际应用中,可以将复杂的商业规则封装在存储过程中,从而提高程序语句的利用率。,2存储过程的优点存储过程一旦执行一次后,其执行的计划就会驻留在计算机的高速缓冲存储器中。其后对同一个存储过程的调用就可以直接利用编译后在高速缓存中的二进制形式来完成操作。可以在单个存储过程中执行一系列SQL语句,因而可以用于设计、封装企业的

4、功能模块。应用程序使用相同的存储过程进行操作,确保了在数据访问、操纵的一致性。,稽敬托韭捆晓将咖珐纤箭向拐梢共泳聪烯期总甫啦谬器料鸳蝴咏断植绎捶数据库存储过程与触发器数据库存储过程与触发器,可以在当前的存储过程内部引用其它存储过程,这样可以将复杂语句进行简化。提供了一种数据库访问的途径,只需要用户拥有执行存储过程的权限,那么通过使用存储过程就可以完成对数据库的各种操作,如添加数据、修改数据、删除数据等,而不需要考虑用户是否拥有存储过程所处理的数据对象的访问权限。,3使用存储过程的注意事项在命名自定义存储过程时避免与系统存储过程名相同。存储过程最多能够支持32层的嵌套。命名存储过程中的标识符时,

5、长度不能超过128个字符。存储过程中参数的个数不能超过2100。,锻绎冀淖超狗期靖奏崇活伯认豫伸信詹阿存痊挚汁娃驼典钒兔至厘鬼客占数据库存储过程与触发器数据库存储过程与触发器,8.1.2 创建和执行存储过程在SQL Server中,既可以通过企业管理器,也可以通过使用CREATE PROCEDRUE语句的方式来创建存储过程。1使用企业管理器创建存储过程步骤:在企业管理器中,展开服务器组、服务器节点、数据库节点。选择某一个数据库并在该节点上点击鼠标右键,选择【新建】菜单下的【存储过程】级联菜单,将弹出如图8-1所示的对话框。,图8-1新建存储过程对话框,拣幻锹倒贷销吟历温曾容勺贯桥碾拖苦恤灸珠区

6、碴渠孟己菠拧肃镐钓午途数据库存储过程与触发器数据库存储过程与触发器,在【存储过程属性】对话框中的【文本】编辑框中,对OWNER以及PROCEDURE NAME部分进行修改,分别修改为该存储过程的所有者和存储过程名称,并且输入该存储过程所包含的SQL语句。如图8-2所示为创建了一个用于查询学生信息的存储过程。,图8-2用于查询学生信息的存储过程,够票匆敲刊洁球锥藩撤题张碍溯害邦锋沤辆侩蒜势漱忱挑剔市怯桨饵样纯数据库存储过程与触发器数据库存储过程与触发器,如果需要验证存储过程中的SQL语句的正确性,可以单击【检查语法】按钮,如果没有语法错误则会弹出如图8-3所示的“语法检查成功”的对话框。,图8-

7、3“语法检查成功”的提示对话框,当存储过程中没有语法错误后,可以单击【确定】按钮来 保存自定义的存储过程。,笛灭坚畜袒疲痹汀甭彰矫多怠趾等皱评寒母挨筹张照年涟瘴扮卒卷炭逃徒数据库存储过程与触发器数据库存储过程与触发器,2使用CREATE PROCEDURE语句来创建存储过程该语句可以创建永久使用的存储过程,也可以创建局部临时过程、全局临时过程。语法格式为:CREATE PROCEDURE 存储过程名称;数值参数 数据类型 VARYING=参数的默认值 OUTPUT,n WITH RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION FOR REPLICATION

8、AS SQL语句.n,其中:存储过程名称 必须符合标识符命名规则,而且对于数据库以及所有者命名必须唯一。一个完整的命名不能超过128个字符。,筋裸回碾紧恍灵拓牟妖猛添拘镶裴荚篡铂措酿虱淡峦钾倡幸嚏旭摧鹃徐恨数据库存储过程与触发器数据库存储过程与触发器,【例8-1】使用CREATE PROCEDURE语句创建一个名称为proc_bjrs的存储过程,用于检索现有班级及人数。,CREATE PROCEDURE proc_bjrs AS SELECT DISTINCT(班级表.班级编号),班级表.班级 名称,人数=COUNT(学生基本信息表.学号)FROM 学生基本信息表,班级表 WHERE 班级表.

9、班级编号=学生基本信息表.班级编号 GROUP BY 班级表.班级编号,班级表.班级名称GO在查询分析器中执行以上命令后,然后执行该存储过程EXECUTE proc_bjrs,运行结果如图8-4所示。,奇理腾勉她悸阶爵凡壬译蚜谐疤铃瘪游其残犹色唁了囊惶芹讽详应把龋胡数据库存储过程与触发器数据库存储过程与触发器,图8-4 检索现有班级以及人数,仗民败朽集需宅月送饵等师剃小拿屹阴锡总霓肾讥阿验递循一幸先捣许儿数据库存储过程与触发器数据库存储过程与触发器,【例8-2】设计一个带有参数的存储过程,该参数用于传递班级编号,根据该参数在学生基本信息表中检索出某一个班级中所有学生的信息。,CREATE PR

10、OCEDURE proc_bjcx bjbh VARCHAR(8)AS SELECT*FROM 学生基本信息表 WHERE 班级编号=bjbhGO其中参数bjbh用于接收班级编号,在实际调用中根据该参数将会返回一个结果集。例如,EXECUTE proc_bjcx 20051003,将会显示班级编号为20051003的学生信息。运行结果如图8-5所示,淮豫诀竣盅蕉篡册芝荫佩椭撤氛暮绎兔坞搓蓝侯读种辣舅荤站勒铝肢皖勉数据库存储过程与触发器数据库存储过程与触发器,图8-5 用于传递班级编号的存储过程,饰缅夜前绍倾瞧妊孝阀砖由殖艰薪盟剿送翅吉椰淳啼拽褪讳壬驼千线疹嚼数据库存储过程与触发器数据库存储过程

11、与触发器,8.1.3 修改与删除存储过程在SQL Server中,可以通过企业管理器或SQL语句两种方式修改或删除存储过程。1使用企业管理器修改存储过程在企业管理器中,展开服务器组、服务器以及数据库节点。选择某一个数据库,展开该数据库节点后点击【存储过程】,在右侧的窗口中将会显示出存储过程的列表。右击需要修改的存储过程,在弹出菜单中选择【属性】,弹出存储过程属性对话框,如图8-6所示。,图8-6【存储过程属性】对话框,懂粳汰镰泰否自谭父澳拌婿同尧攒顶侮蹲今举鞍耙跪洽居玲悬脚继控喝抚数据库存储过程与触发器数据库存储过程与触发器,在【存储过程属性】对话框的【文本】编辑框中修改包含的SQL语句。需要

12、注意的是,存储过程的名称不能修改。在检查了语法的正确性之后,可以单击【确定】按钮保存修改并关闭对话框。2使用企业管理器重命名存储过程在企业管理器中,展开服务器组、服务器以及数据库节点。选择某一个数据库,展开该数据库节点后点击【存储过程】,在右侧的窗口中将会显示出存储过程的列表。右击需要重命名的存储过程,并选择弹出菜单中的【重命名】命令,如图8-7所示。,援巢拉用忧攫渭蜀篷拭肺轨玛呼玛截争醛掀榷嫂衅俏桑嫌财勿由曰蛙印营数据库存储过程与触发器数据库存储过程与触发器,图8-7 弹出菜单中的【重命名】命令,重新输入存储过程的名称后,按下回车键完成修改。,碴禹素抄喝酮孙更刀带贴歇脖沸墅拒枫筋琼匠瞒读搓围

13、茬棉渣凯蛛涡乐录数据库存储过程与触发器数据库存储过程与触发器,3使用ALTER PROCEDURE语句修改存储过程ALTER PROCEDURE语句可以对数据库中已有的存储过程进行修该,但不会更改权限,也不影响相关的存储过程或触发器。该语句的语法格式为:ALTER PROCEDURE 存储过程名称;数值参数 数据类型 VARYING=参数的默认值 OUTPUT,n WITH RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION FOR REPLICATION AS SQL语句.n 其中,存储过程名称为数据库中已经存在的过程名,语法中的常用选项与CREATE PRO

14、CEDURE语句一致。,勃渣呐坷吁蚂衔赘廓流裸偷匠异拆萧买孩谊漆景巍淖酵邢辰翟忻锯删淖护数据库存储过程与触发器数据库存储过程与触发器,【例8-3】修改已经创建的存储过程proc_bjcx及其功能,将其修改为可以根据系部编号来查询某一个系部中所有学生的信息。修改后将存储过程名称重命名为proc_xbcx。在查询分析器中运行如下命令,即可完成重命名:ALTER PROCEDURE proc_bjcx xbbh VARCHAR(2)AS SELECT*FROM 学生基本信息表 WHERE 班级编号 IN(SELECT 班级编号 FROM 班级表 WHERE 系部编号=xbbh)GOSP_RENAME

15、 proc_bjcx,proc_xbcxGO,醋绝耕枯沛啪斟嚏遗滓挝王蝉时捣蛾渝峪盖吼瓷纹靶凛尊庐卿卉阉咏嫉慕数据库存储过程与触发器数据库存储过程与触发器,使用SP_RENAME可以重新命名一个现有的存储过程。SP_RENAME的语法格式为:SP_RENAME 原名称,新名称。完成修改后查询系部编号为01的学生信息。EXEC proc_xbcx 014使用企业管理器删除存储过程在企业管理器中,展开服务器组、服务器以及数据库节点。选择某一个数据库,展开该数据库后点击【存储过程】,在右侧的窗口中显示出存储过程的列表。右击需要删除的存储过程,并在弹出菜单中选择【删除】命令,将弹出【除去对象】对话框,

16、如图8-8所示。在【除去对象】对话框中单击【全部除去】按钮将会完成对存储过程的删除操作。,氰链殃攀串驴吐釉隆犯希钒粮抽披朋账蟹捕写劲八胡酝瓶呀惫恼坪巫髓援数据库存储过程与触发器数据库存储过程与触发器,图8-8【除去对象】对话框,茸炕呸酶更娱租酉桔傅刀堰愿熟碌刨大厌欺睁炎处剧骑亢功裴澳湾净纵宵数据库存储过程与触发器数据库存储过程与触发器,5使用DROP PROCEDURE语句删除存储过程使用DROP PROCEDURE语句可以从当前的数据库中删除一个或多个存储过程。DROP PROCEDURE语句的语法格式为:DROP PROCEDURE 存储过程名称,.n【例8-4】同时删除当前数据库中的两个

17、存储过程,proc_a和proc_b。在查询分析器中运行如下命令,即可完成删除操作:DROP PROCEDURE proc_a,proc_bGO,粱尸映珍私驹店槐孙莱资踩彝诸恨瞻犀醛呈毡窖靖继国敛钱贺坐垢喝公陇数据库存储过程与触发器数据库存储过程与触发器,8.2 触发器8.2.1 触发器及其作用1触发器简介 触发器属于一种特殊的存储过程,可以在其中包含复杂的SQL语句。触发器与存储过程的区别在于触发器能够自动执行并且不含有参数。通常可以在触发器内编写一段自动执行的程序,用于保证数据操作的完整性,从而扩展了对默认值、约束和规则的完整性检查。对表进行包括添加数据、删除数据、更新数据中的一种或多种操

18、作时,触发器就会自动执行。触发器可以划分为三种类别:INSERT触发器、DELETE触发器、UPDATE触发器。这三种触发器分别在发生数据的添加、删除、修改行为时自动执行。,敬汀洞掣痈彝踌称哈咯搽源弟茵芬沾怖耀谭隙忱孩鸵由凋犯吐自荚佑痉趁数据库存储过程与触发器数据库存储过程与触发器,2触发器的优点触发器有助于在添加、更新或删除表中的记录时保留表之间已定义的关系。触发器可以自动调用,当发生了对数据所作的任何修改时,与之相关的触发器就会立刻被激活。可以完成数据库中相关表之间的级联修改。级联修改是指为了保证数据之间的逻辑性以及依赖关系,在对一张表进行修改的同时,其他表中需要进行的修改能够自动实现。触

19、发器可以对需要存储的数据加以限制,并且能够实现比CHECK约束更为复杂的功能。在CHECK约束中不允许引用其他表中的列,而触发器可以引用。,3触发方式 触发器的触发方式可以分为后触发和替代触发两种方式。后触发:指能够引发触发器的修改操作在完成之后才执行触发器的行为方式。创建该类触发器,需要使用AFTER关键字或者FOR关键字。,嫁犁正塔腐揍鹏泌蜕司结勉炯斜竟域呼栓串冒烦弊竟比埠削盆败躲枯沸声数据库存储过程与触发器数据库存储过程与触发器,替代触发:指定执行一个触发器,而不是执行SQL语句,这种替代触发语句的方式称为替代触发方式。,8.2.3 创建触发器可以使用企业管理器以及CREATE TRIG

20、GER语句两种方式来创建触发器。1使用企业管理器创建触发器打开企业管理器,在控制台根目录下依次展开服务器组、服务器节点、数据库节点。选择某一个数据库,并双击【表】节点,在右侧窗口的列表中选择其中的一张表。右击所选中的表,在弹出的下拉菜单中选择【所有任务】,并继续选择级联菜单中的【管理触发器】命令,将打开图8-9所示的【触发器属性】对话框。,含罗菲觅沼串甚姜古穿蔓夹咬郧务纵篇几衅惯铣住审坠净筷吭媒喧犀猫穴数据库存储过程与触发器数据库存储过程与触发器,图8-9【触发器属性】对话框,攀窃迁拣端己志引耻碧鲁虎取琉全垛决麓皇思滓腮勾轿踌彬蹦闪底罩伤攻数据库存储过程与触发器数据库存储过程与触发器,在【触发

21、器属性】对话框的文本框中,将TRIGGER NAME修改为新建触发器的名称,并输入触发器所包含的SQL语句。通过点击【检查语法】按钮来判断触发器的语法是否正确,最后,点击【确定】按钮保存新建的触发器。2使用CREATE TRIGGER语句创建触发器CREATE TRIGGER语句的部分语法格式:CREATE TRIGGER 触发器名称 ON 表名|视图名 WITH ENCRYPTION FOR|AFTER|INSTEAD OF DELETE,INSERT,UPDATEAS SQL语句.n,悔驭肄梯甄悯橇锨竖雾布庶滑层默捎贾售换墒称占藻戊涎葬躺座柱湘叁淀数据库存储过程与触发器数据库存储过程与触发

22、器,其中:触发器名称 必须符合标识符命名规则,并且在同一个数据库中触发器的名称不允许重复。触发器名称中可以省略所有者名称。表名或视图名称 是指建立触发器所依赖的对象。也可以称为触发器表或触发器视图。WITH ENCRYPTION 该选项的作用为对触发器中所包含的SQL语句进行加密。FOR或AFTER 代表后触发方式,即当满足所有的引用级联操作和约束检查后并且完成了SQL 语句中指定的所有操作后,指定的触发器才会被执行。在视图上不允许采用后触发方式。INSTEAD OF 表示替代触发方式,每一个INSERT、UPDATE、DELETE 语句只能定义一个 INSTEAD OF 触发器。,殆恰税磁季

23、锑久舱靖轧耕阳沁事孽血含氟佃摧佬九探勺叶柯抄钱淬愧苗尤数据库存储过程与触发器数据库存储过程与触发器,DELETE、INSERT、UPDATE 三个选项中应该至少选择其一,用于表示在表或视图上执行了哪一类的操作时会将触发器激活。SQL语句 为触发器中包含的条件以及需要执行的操作。在执行触发器时,系统会自动创建两张临时表INSERTED、DELETED,这两张表的结构与触发器所依赖的表类似,用于保存在用户操作过程中被插入或被删除的数据。每一个触发器在执行过程中都会产生与之相关的上述两张临时表,并且在执行结束后,两个临时表会自动被系统删除。对临时表可以进行查询操作,如SELECT*FROM DELE

24、TED,但是不能对临时表进行修改,泌婪番镭倒倾撬都报煤奈碍磨焉姜缔鳃元优梨须割鹏七努着黑轧群汰积工数据库存储过程与触发器数据库存储过程与触发器,【例8-5】在数据库XSCJ中设计一个触发器,该触发器的作用为:当在班级表中删除某一个班级时,在学生基本信息表中该班级所包含的学生信息也全部被删除。提示:在此例中,由于涉及到了班级表的删除操作,因而需要设计一个DELETE类型的触发器。在查询分析器中运行如下命令:USE XSCJGOCREATE TRIGGER del_bj ON 班级表AFTER DELETEAS DELETE FROM 学生基本信息表 WHERE 班级编号 IN(SELECT 班级

25、编号 FROM DELETED)GO运行结果如图8-10所示。,带耻脓擂绥落罕禽帽远村馈宾泌驶骂撇腾削刺汤托挡蜕栓瑟场耘农擒齐啄数据库存储过程与触发器数据库存储过程与触发器,图8-10 一个DELETE类型的触发器,【例8-6】在数据库XSCJ中设计一个触发器,该触发器能够保证在学生基本信息表中添加新的纪录时,新学生的班级编号必须已经存在于班级表中。,晦定曼炎彩年尊因阀肇擅驮嚎炽较喻嚼赶稗帚功陛矛寇逛滦移析在携迎怪数据库存储过程与触发器数据库存储过程与触发器,提示:设计该触发器有助于实现学生信息的完整性。在此例中由于涉及到了学生基本信息表中的添加操作,因而需要设计一个INSERT类型的触发器。

26、在查询分析器中运行如下命令:,USE XSCJGOCREATE TRIGGER insert_xs ON 学生基本信息表AFTER INSERTAS IF EXISTS(SELECT*FROM INSERTED WHERE 班级编号 IN(SELECT 班级编号 FROM 班级表)PRINT 添加成功!ELSE BEGIN PRINT 班级编号与现有的班级不符!ROLLBACK TRANSACTION END,曝赁嗣蜒吹阶僵伯仗泌蹦产墙乔异歇型初随竹御枯卑琼妻干受疟盼裁仙示数据库存储过程与触发器数据库存储过程与触发器,运行结果如图8-11所示。,图8-11 一个INSERT类型的触发器,扛务隘

27、鲁嫩桐灼郧烷页桥虏征敬首乘花轨厘衅罚裕允帆寝散铺汀县冤细砒数据库存储过程与触发器数据库存储过程与触发器,创建了触发器insert_xs之后,我们可以添加新的学生纪录进行测试,例如:INSERT INTO 学生基本信息表(学号,姓名,性别,族别,班级编号)VALUES(000108,王松涛,男,汉,20081001)由于“班级表”中不存在编号为20081001的班级,因而添加操作将会被取消。ROLLBACK TRANSACTION用于回滚已经完成的操作。运行结果如图8-12所示。,图8-12 添加操作被取消,藕絮藩啊炙罢氯恍凸伞咋禹痉绊袖腮摸蜜然瘴奢搏卤拍记疽梢滋俊霹吵贩数据库存储过程与触发器数

28、据库存储过程与触发器,8.2.4 修改与删除触发器1使用企业管理器修改触发器在控制台根目录下依次展开服务器组、服务器节点、数据库节点。选择某一个数据库,并双击【表】节点,在右侧窗口的列表中选择某一张需要对其所建立的触发器进行修该的表。右击所选中的表,在弹出的下拉菜单中选择【所有任务】,并继续选择级联菜单中的【管理触发器】命令,将打开【触发器】属性对话框,如图8-13所示。在【触发器属性】对话框中,在【名称】下拉列表框选择一个已有的触发器,并在【文本】编辑框中对其所包含的SQL语句进行修改。,薛参辙铀疆炯伴静誊钠京见座冠威渴令浩处凛碰肺躲蜜擅顾遂隅桐铭篮汤数据库存储过程与触发器数据库存储过程与触

29、发器,图8-13【触发器】属性对话框,析巡铭厕蛤宜燥霞内置硒屋昭剩莆构否透壹瘁蛔诡丈阴怀另涣穷冻裹互冲数据库存储过程与触发器数据库存储过程与触发器,在语法检查无误的情况下,点击【确定】按钮保存修改。如果需要删除当前触发器,可以点击【删除】按钮。2使用ALTER TRIGGER语句修改触发器ALTER TRIGGER语句与CREATE TRIGGER语句的语法格式及其参数类似,部分语法格式为:ALTER TRIGGER 触发器名称 ON 表名|视图名 WITH ENCRYPTION FOR|AFTER|INSTEAD OF DELETE,INSERT,UPDATEAS SQL语句.n,少亥丛赖没

30、脖所萄淑湍比逐祸脆伯扛囊防鹅乡蔚饥呵档缅荚笺说汕纬羚读数据库存储过程与触发器数据库存储过程与触发器,【例8-7】修改del_bj触发器,使得在班级表中删除某一个班级时,不仅在学生基本信息表中该班级所包含的学生信息将被删除,而且在成绩表中与学生相关的数据也将被删除。在查询分析器中运行如下命令:ALTER TRIGGER del_bj ON 班级表AFTER DELETEAS DELETE FROM 成绩表 WHERE 学号 IN(SELECT 学号 FROM 学生基本信息表 WHERE 班级编号 IN(SELECT 班级编号 FROM DELETED)DELETE FROM 学生基本信息表 WH

31、ERE 班级编号 IN(SELECT 班级编号 FROM DELETED)运行结果如图8-14所示。,宇拾文津铸阮躇球昔房佯侦邀髓辟迹颤邓忘芦渴强瘩粹氧琳骑膜域诫素崖数据库存储过程与触发器数据库存储过程与触发器,图8-14 修改del_bj触发器,3使用DROP TRIGGER语句删除触发器移除触发器时,与触发器有关的信息将从sysobjects和syscomments系统表中删除。可以通过删除触发器或删除表两种方式移除触发器。删除表时,将除去所有与表相关联的触发器。,俗维协奠哩掌黑它选窄剁碌漏乞蛇岭榷梢楚意污次荧瞎读粥殊辐丛叔坪堕数据库存储过程与触发器数据库存储过程与触发器,DROP TRI

32、GGER语句的语法格式为:DROP TRIGGER 触发器名称,.n 触发器名称为数据库中现有的触发器。可以指定一个或多个触发器名称来删除一个或多个触发器。,【例8-8】删除触发器del_bj以及insert_xs。在查询分析器中运行如下命令:USE XSCJGODROP TRIGGER del_bj,insert_xs运行结果如图8-15所示。,僧悉直羽刀驹牲悸冀私惕钓变烙疆迪侣宴芥箕芦湃驾籍辜栏岂掺膀案瘟谬数据库存储过程与触发器数据库存储过程与触发器,图8-15 删除触发器del_bj以及insert_xs,丑埠抵弊扳奄镐瞧拦讥汪咱机退亭宫日剿皮斑猴贵八驶毁研彼捍炙直炎腰数据库存储过程与触

33、发器数据库存储过程与触发器,本章小结本章学习了存储过程与触发器的相关知识,存储过程中可以将多条SQL语句集中在一起完成复杂的功能,从而用户可以在不具有对数据对象访问的权限下调用这些存储过程完成的特定的操作。触发器可以帮助用户完成数据的验证功能,从而能够保证数据的一致性、完整性。,落综慨涯馆萧丧瑞凰董蜂朝棘毛诧厌昂澜垄赢瓮号拭砌椰用楞乡娠竟射既数据库存储过程与触发器数据库存储过程与触发器,练习与上机一选择题1下面关于存储过程的描述中哪些是正确的()A自定义存储过程与系统存储过程名称可以相同B存储过程最多能够支持64层的嵌套C命名存储过程中的标识符时,长度不能超过256个字符D存储过程中参数的个数

34、不能超过21002用于创建存储过程的SQL语句为()ACREATE DATABASE BCREATE TRIGGERCCREATE PROCEDURE DCREATE TABLE3用于修改存储过程的SQL语句为()AALTER TABLE BALTER DATABASECALTER TRIGGER DALTER PROCEDURE,些幽山抗疲惧箩鸣曝壶仗患棉售受氓娥亲虏涸蛙心溅基角苔履美胸狱设萨数据库存储过程与触发器数据库存储过程与触发器,4下列对触发器的描述中哪一个是错误的()A触发器属于一种特殊的存储过程B触发器与存储过程的区别在于触发器能够自动执行并且不含有参数C触发器有助于在添加、更新

35、或删除表中的记录时保留表之间已定义的关系D既可以对INSERTED、DELETED临时表进行查询,也可以进行修改,啪期傣履间方述质惧桓帐情靖误技札斌眩绵咽湛玩凡琐墒弱昧蔼天厚地玻数据库存储过程与触发器数据库存储过程与触发器,二填空题1一个存储过程的名称不能超过_个字符。2使用_语句可以对存储过程进行重命名。3触发器有_、_触发方式。4用_语句可以删除触发器。5触发器可以划分为三种类别_、_、_。三简答题1简述什么是存储过程?2简要说明存储过程的语法格式?3简述什么是触发器?4简要说明触发器的语法格式?,洗洪铲肘语假损潜岂柜刷冕渔秽例宦轰拯增砚明拜逼莉辅换酱疥套涌苫乎数据库存储过程与触发器数据库存储过程与触发器,项目实训1创建一个存储过程,该存储过程能够实现根据系部的编号查询出系部中男生、女生的人数。2创建一个INSERT触发器,该触发器能够在向成绩表中添加数据时,自动判断学号、课程编号、成绩是否合法,如果非法则对插入操作进行回滚。3.修改存储过程的名字。4建立一个存储过程,来修改student数据库的c、sc两张表,当用户修改c表中的cno后,修改cno表中对应的数据。,批烬再哼霸捐榜赏缴铝刷哎景毫靶泊诗川踩舟熊红炎像杖壮绪敢战孺仅恃数据库存储过程与触发器数据库存储过程与触发器,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号