《SQL server数据库》课件第8章 存储过程与触发器.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《SQL server数据库》课件第8章 存储过程与触发器.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL server数据库 SQL server数据库课件第8章 存储过程与触发器 SQL server 数据库 课件 存储 过程 触发器
- 资源描述:
-
1、8.1任务描述:任务描述:本章完成项目的第8个任务:在大学生选课管理数据库Student中,完成以下基本操作:1创建一个添加学生选课信息的存储过程。2创建一个删除学生选课信息的存储过程。3创建一个修改学生选课信息的存储过程。4创建一个INSERT触发器。5创建一个DELETE触发器。6创建一个UPDATE,INSERT触发器。8.2.1 存储过程的概念存储过程的概念 存储过程是数据库的一种对象,是为了实现某个特定任务,以一个存储单元的形式存储在服务器上的一组SQL语句的集合。用户也可以把存储过程看成是以数据库对象形式存储在SQL Server中的一段程序或函数。存储过程是由一系列的SQL语句或
2、控制流程语句组成。8.2 存储过程综述存储过程综述 8.2.2 存储过程的类型存储过程的类型 用户定义的存储过程 系统存储过程 扩展存储过程8.3 创建、执行、修改和删除存储过程创建、执行、修改和删除存储过程 8.3.1 创建存储过程创建存储过程 创建存储过程的语法格式:创建存储过程的语法格式:CREATE PROCEDURE dbo.存储过程名 形式参数定义 WITH RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION AS BEGIN 过程体语句组 END 例如:在数据库Student中,创建一个存储过程st_ksp,该存储过程可根据输入的课程名称返回该课程
3、的平均成绩。USE StudentGOCREATE PROCEDURE st_ksp km varchar(20),pf decimal(5,1)OUTPUTASIF Exists(Select *From ctab Where kcm=km)Select pf=Avg(cj)From sctab Where kch=(Select kch From ctab Where kcm=km)ELSESET pf=0GO在查询编辑器中执行以上代码,创建存储过程st_ksp。8.3.1 创建存储过程创建存储过程8.3.2 执行存储过程执行存储过程调用存储过程的语法格式:调用存储过程的语法格式:EXEC
4、UTE 存储过程名存储过程名 实际参数实际参数 WITH RECOMPILE 其中,实际参数格式为:其中,实际参数格式为:输入参数对应的表达式输入参数对应的表达式|输出参数对应的变量输出参数对应的变量 OUTPUT,n注意:实际参数与形式参数从类型、个数和顺序必注意:实际参数与形式参数从类型、个数和顺序必须一一对应。须一一对应。例如:利用上述存储过程st_ksp输出高等数学这门课的平均成绩。USE StudentGODECLARE pj decimal(5,1)EXECUTE st_ksp 高等数学 ,pj OUTPUTPRINT 高等数学平均成绩为:+STR(pj)GO8.3.2 执行存储过
5、程执行存储过程8.3.3 查看存储过程查看存储过程查看存储过程信息语法格式:查看存储过程信息语法格式:sp_helptext 存储过程名存储过程名例:查看数据库例:查看数据库Student中存储过程中存储过程st_ksp的信息。的信息。USE StudentGOsp_helptext st_kspGO8.3.4 修改存储过程修改存储过程修改存储过程语法格式:修改存储过程语法格式:ALTER PROCEDURE dbo.存储过程名存储过程名 形式参数定义形式参数定义 WITH RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION AS BEGIN 过程体语句组过程体
6、语句组 END 8.3.5 删除存储过程删除存储过程删除存储过程语法格式:删除存储过程语法格式:DROP PROCEDURE 存储过程名存储过程名例:删除数据库例:删除数据库Student中的存储过程中的存储过程st_jsjbj.USE StudentGODROP PROCEDURE st_jsjbjGO8.4 存储过程的重新编译与加密存储过程的重新编译与加密1、在建立存储过程时设定重新编译、在建立存储过程时设定重新编译在在CREATE PROCEDURE命令中指定命令中指定WITH RECOMPILE选项。选项。2、在执行存储过程时设定重新编译、在执行存储过程时设定重新编译在在EXECUTE
7、命令中指定命令中指定WITH RECOMPILE选项。选项。3、使用系统存储过程对存储过程设定重新编译、使用系统存储过程对存储过程设定重新编译语法格式:语法格式:EXEC sp_recompile 存储过程名存储过程名8.4.1 存储过程的重新编译存储过程的重新编译在CREATE PROCEDURE 命令中指定WITH ENCRYPTION选项。例:例:在数据库Student中,创建一个加密存储过程st_nkq,该过程可列出未选修任何课程的学生信息。USE StudentGOCREATE PROCEDURE st_nkqWITH ENCRYPTIONASSelect xh 学号 ,xm 姓名
8、From stab Where xh NOT IN(Select DISTINCT xh From sctab)GO8.4.2 存储过程的加密存储过程的加密8.5 触发器综述触发器综述 触发器是一种特殊类型的存储过程。与存触发器是一种特殊类型的存储过程。与存储过程类似,它也是由储过程类似,它也是由SQL语句组成的,可以语句组成的,可以实现一定的功能。实现一定的功能。触发器分为两大类:DML触发器和DDL触发器。8.6 触发器的创建执行、修改和删除触发器的创建执行、修改和删除 8.6.1 触发器的创建与执行触发器的创建与执行1、Inserted表和表和Deleted表表 当向表中插入数据时,如果
9、该表存在INSERT触发器,触发器将被触发而自动执行。当从表中删除数据时,如果该表存在DELETE触发器,触发器将被触发而自动执行。当修改表中的数据时,就相当于删除一条旧的记录,添加一条新的记录,其中被删除的记录存放在Deleted表中,同时添加的新纪录存放在Inserted表中。8.6.1 触发器的创建与执行触发器的创建与执行 2、创建触发器、创建触发器语法格式:语法格式:CREATE TRIGGER 触发器名 ON 触发器的表名 WITH ENCRYPTION FOR INSERT ,DELETE ,UPDATE AS IF UPDATE(列)AND|OR UPDATE(列)n BEGIN
展开阅读全文