欢迎来到天天文库
浏览记录
ID:27119649
大小:514.51 KB
页数:33页
时间:2018-12-01
《存储过程和触发器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章存储过程和触发器8.1存储过程优点1>模块化程序设计存储过程可保存在数据库中,以后可反复调用,并可以对其进行单独的修改和维护.2>提高执行速度3>减少网络流量存储过程可只用一条语句来实现.4>提高安全机制8.2触发器8.1存储过程8.1.1概念SQLServer的存储过程类似于编程语言中的过程。在使用Transact-SQL语言编程的过程中,我们可以将某些需要多次调用的实现某个特定任务的代码段编写成一个过程,将其保存在数据库中,并由SQLServer服务器通过过程名来调用它们,这些过程就叫
2、做存储过程。8.1存储过程8.1.2分类系统存储过程在SQLServer2000中,很多管理活动都是通过系统存储过程执行的。像我们以前讲过的创建登录账号,创建数据库用户账号,创建角色等等。用户自定义的存储过程是用户自己根据需要编写的存储过程。8.1存储过程8.1.4创建存储过程例如:在销售公司,员工的工资是和销售额挂勾的,销售额在0-500,开基本工资的50%,销售额在500-1000,开基本工资,销售额在1000-2000,开基本工资的1.5倍。表:employeeempidintempnam
3、echarjbgzfloatssefloatgzfloat8.1存储过程语法CREATEPROCEDURE存储过程名AS语句体;GO8.1存储过程在企业管理器中创建存储过程一、存储过程8.1存储过程在查询分析器中创建存储过程8.1存储过程在查询分析器中创建存储过程USEstudentGOIFEXISTS(selectnamefromsysobjectswherename='pscgz1'andtype='P')DROPPROCEDUREpscgz1GOCREATEPROCEDUREpscgz1A
4、Supdateemployeesetgz=jbgz*0.5wheresse<500;updateemployeesetgz=jbgz*1.0wheresse>=500andsse<1000;updateemployeesetgz=jbgz*1.5wheresse>=1000andsse<2000;GO8.1存储过程8.1.5执行存储过程要想执行存储过程,要进入到查询分析器中,执行SQL语句:exec存储过程名;8.1存储过程8.1.6修改存储过程一、存储过程8.1存储过程8.1.7重命名存储过程
5、8.1.8删除存储过程8.1.10参数化存储过程带输入参数的存储过程CREATPROCEDUREpscgz@stuIDIntegerASSelect*fromstuInfowherestuID=@stuIDGO执行EXECpscgz0018.1.102带输出参数的存储过程@stuIDInteger@stuIDnvarchar(40)OUTPUTASSelect@stuName=NamefromStuInfoWherestuID=stuIDGO执行DECLARE@CNamenvarchar(40)
6、OUTPUTEXECpscgz001,@CNameOUTPUTPRINT@CNameGO8.2触发器8.2.1定义触发器是一种与数据库中表紧密关联的特殊的存储过程,当该数据表有插入(INSERT)、更改(UPDATE)或删除(DELETE)事件发生时,所设置的触发器就会自动被执行。触发器只要满足一定的条件,它就可以触发完成各种简单和复杂的任务,可以帮助我们更好的维护数据库中数据的完整性。8.2触发器8.2.3类型AFTER触发器INSTEADOF触发器8.2触发器8.2.4创建触发器例如:学生选
7、课系统,有学生表,课程表,学生选课表在stu表上创建一个触发器,如果删除了stu表中的一条学生的信息,则触发此触发器,同时删除xk表中这个学生的选课记录。8.2.4,1.触发器的权限默任分配给表的所有者,且不能将权限转给其他用户2,只能在当前数据库中建3,不能再临时表中和系统表上建立触发器4,必须指定一个有效选项INSERTUPDATEDELETE8.2触发器语法CREATETRIGGER触发器名ON表名FORINSERT,UPDATE,DELETEAS语句体;GO8.2触发器在企业管理器中创建
8、触发器insertintoshippersvalues('abc',00000);deletefromshipperswherecompanyname='abc';updateshipperssetcompanyname='www'wherecompanyname='abc';二、触发器8.2触发器在查询分析器中创建触发器8.2触发器8.2.5修改触发器8.2.6重命名触发器8.2.7删除触发器8.2触发器8.2.7删除触发器二、触发器
此文档下载收益归作者所有