第8讲 存储过程
第8讲 存储过程
●题 要把某完成功能的SQL做成类似C语言 的函数,供需要时调用,如何做? ●什么是存储过程? 3是一组被编译在一起的TSQ语旬的集合, 它们被集合在一起以完成一个特定的任 概述 务, ●存储过程的分类 9系统存储过程 3扩展存储过程(提供从 SQL Server到外部 程序的接口,以便进行各种维护活动) 9用户自定义的存储过程
概 述 问题 要把某完成功能的SQL做成类似C语言 的函数,供需要时调用,如何做? 什么是存储过程? 是一组被编译在一起的T-SQL语句的集合, 它们被集合在一起以完成一个特定的任 务。 存储过程的分类 系统存储过程 扩展存储过程(提供从SQL Server到外部 程序的接口,以便进行各种维护活动) 用户自定义的存储过程
从以下几个方面考慮: 1.模块化编程 创建一个存储过程存放在数据库中后,就可 以被其他程序反复使用。 存储过程的作用 2.快速执行 存储过程第一次被执行后,就驻留在内存中。 以后执行就省去了重新分析、优化、编 译的过程 3.减少网络通信量 有了存储过程后,在网络上只要一条语句就 能执行一个存储过程。 安全机制 通过隔离和加密的方法提高了数据库的安全 性,通过授权可以让用户只能执行存储 过程而不能直接访问数据库对象
存 储 过 程 的 作 用 从以下几个方面考虑: 1. 模块化编程: 创建一个存储过程存放在数据库中后,就可 以被其他程序反复使用。 2. 快速执行: 存储过程第一次被执行后,就驻留在内存中。 以后执行就省去了重新分析、优化、编 译的过程。 3. 减少网络通信量 有了存储过程后,在网络上只要一条语句就 能执行一个存储过程。 4. 安全机制 通过隔离和加密的方法提高了数据库的安全 性,通过授权可以让用户只能执行存储 过程而不能直接访问数据库对象
视图 存储过程 存储过程和视图的比较 语句 只能是 SELECT可以包含程序流、 语句 逻辑以及 SELECT语句 输入、 不能接受参数,可以有输入输出 返回结果 只能返回结果集参数,也可以有 返回值 典型应用 多个表格的连接完成某个特定的 查询 较复杂的任务
存储过程和视图的比较 视图 存储过程 语句 只能是SELECT 语句 可以包含程序流、 逻辑以及 SELECT语句 输入、 返回结果 不能接受参数, 只能返回结果集 可以有输入输出 参数,也可以有 返回值 典型应用 多个表格的连接 查询 完成某个特定的 较复杂的任务
创°创建格式 建执 CREATE PROCEDURE proc name As Sql statements 过行 程简【间题】创建一个名为 p Student的 单 存储过程。返回 student.表中班级 的 编码为20000001的学生信息 存 储|。执行格式 EXEC proc name
创 建 、 执 行 简 单 的 存 储 过 程 创建格式: CREATE PROCEDURE proc_name AS Sql_statements 【问题】创建一个名为p_Student的 存储过程,返回student表中班级 编码为20000001的学生信息 执行格式: EXEC proc_name