存储过程触发器和游标.ppt
数据库原理与应用教程―SQL Server 第11章存储过程、触发器和游标 引言 在SQL Server 应用操作中,存储过程、触发器和游标都扮演着相当重要的角色。 存储过程是SQL语句和可选流程控制语句的预编译集合,它以一个名称存储并作为一个单元处理,能够提高系统的应用效率和执行速度。 触发器是一种特殊类型的存储过程。当有操作影响到触发器保护的数据时,触发器就会自动触发执行。它可以扩展SQL Server完整性约束默认值对象和规则的完整性检查逻辑,实施更为复杂的数据完整性约束。 游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。 内容 11.1 存储过程 11.2 触发器 11.3 游标 11.1 存储过程 1. 概述 2. 存储过程的类别 3. 创建和执行存储过程 4. 查看、修改和删除存储过程 1. 概述 1.概述----什么是存储过程 ① 存储过程的概念 一组编译在单个执行计划中的T-SQL语句,它将一些固定的操作集中起来交给SQL Server数据库服务器完成,以完成某个任务。(管理任务或应用复杂的业务规则)。 是存储在服务器上的 T-SQL 语句的命名集合 是封装重复性任务的方法 支持用户声明变量、条件执行以及其他强有力的编程特性 1.概述----什么是存储过程 SQL Server 中的存储过程可以 包含执行数据库操作(包括调用其他过程)的编程语句 接受输入参数 向调用过程或批处理返回状态值,以表明成功或失败(以及失败原因) 以输出参数的形式将多个值返回至调用过程或批处理 1. 概述----存储过程优点 2.存储过程的类型 用户定义的存储过程:用户定义的存储过程是用户根据需要,为完成某一特定功能,在自己的普通数据库中创建的存储过程。 系统存储过程:系统存储过程以sp_为前缀,主要用来从系统表中获取信息,为系统管理员管理SQL Server提供帮助,为用户查看数据库对象提供方便。比如用来查看数据库对象信息的系统存储过程sp_help。从物理意义上讲,系统存储过程存储在资源数据库中。从逻辑意义上讲,系统存储过程出现在每个系统定义数据库和用户定义数据库的sys构架中。 扩展存储过程:指SQL Server的实例动态加载和运行的DLL,这些DLL通常是用编程语言(例如:C)创建的。扩展存储过程以xp_为前缀。 临时存储过程:以“#”和“##”为前缀的过程,“#”表示本地临时存储过程,“##”表示全局临时存储过程,它们存储在tempdb数据库中。 远程存储过程:是在远程服务器的数据库中创建和存储的过程。这些存储过程可被各种服务器访问,向具有相应许可权限的用户提供服务。 3.创建、执行存储过程 ①使用SSMS管理存储过程 创建 执行 查看 修改 删除 3.创建、执行存储过程 ② 利用T-SQL语句创建存储过程 5.2.2 存储过程创建和执行 传递参数的方式 5.2.4 存储过程的查看、修改和删除 5.2.4 存储过程的查看、修改和删除 5. 查看、修改和删除存储过程 ③ 删除存储过程 DROP PROCEDURE 存储过程名 CREATE PROCEDURE proc_stu @notpassSum int OUTPUT, @writtenPass int=60, @labPass int=60 AS …… SELECT stuName,stuInfo.stuNo,writtenExam, labExam FROM stuInfo INNER JOIN stuMarks ON stuInfo.stuNo=stuMarks.stuNo WHERE writtenExam=3