第8章 第1讲 存储过程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、创建和执行存储过程
——1.简单存储过程
创建格式:
create proc[edure] 存储过程名
as SQL语句
说明:create procedure不能与别的T-SQL语句位
于同一个批中。
相应的执行格式:
[exec] 存储过程名
二、创建和执行存储过程
——1.简单存储过程
实例1:创建1个简单的存储过程p_cj1,查询所有学生的学号、姓名 、课程编号和成绩信息,并按成绩降序排列。
以后在执行时就不必再进行编译和优化。
减少网络流量
由于存储过程是存在服务器上的一组T-SQL,在客户端
调用时,可以只用一条调用语句即可执行。
提供一种安全机制
可以限制用户访问存储过程中涉及到的表的权限,只授
予执行存储过程的权限,用户只能通过存储过程来访问 表,从而保证了数据的安全性。
一、存储过程的基本概念
——3.存储过程的类型
系统存储过程
是指由SQL Server提供的存储过程,可以作为
命令执行。
系统存储过程定义在系统数据库master中,其
前缀是sp_。
用户存储过程
是由用户在当前数据库中创建的存储过程。
最好不要以sp开头。若用户定义的存储过程与
系统存储过程同名,用户定义的存储过程永远 不会执行。
说明:
输出实参和输出形参的名字可以相同,也可以不同。
使用时,要先声明输入和输出实参变量。
二、创建和执行存储过程
——3.使用输出参数
实例3:创建1个带有输入参数和输出的存储过程p_kh,返回指 定教师(作为输入参数)所授课程的课程编号(作为输出参数) 。 create procedure p_kh @teacher char(8) , @kch char(3) output 输出形参:将数据返回给调用它的程序 输入形参 as select @kch = 课程编号 from 课程信息表 where 任课教 输出形参:保存 师= @teacher 查询到的课程号 go declare @teacher varchar(8), @课程信息表h char(3) 输入实参:将教师名传递给存储过程。 set @teacher='赵怡' 输出实参:将带回课程号。 exec p_kh @teacher, @kch output print @teacher + ‘教师所授课程的课程号为:’ + @kch
二、创建和执行存储过程
——2.使用输入参数
课堂练习1:创建并执行带输入参数的存储过程p_学生基本信息表,查询 指定学号(作为输入参数)的学生姓名、课程编号、成绩。 create procedure p_学生基本信息表 @xh char(6) as select 姓名,课程编号,成绩 from 学生基本信息表 , 成绩表
第25讲
第9章 存储过程和触发器
—— 存储过程的使用
主讲人:白杨
SQL Server 2000
复习:
使用批处理、脚本、注释
标识符、常量、变量
T-SQL系统内置函数
流程控制语句
begin…end语句 if…else、if waitfor语句
exists语句
while、break和continue语句
二、创建和执行存储过程
——3.使用输出参数
创建格式:
create proc[edure] 存储过程名
@形参 数据类型 output ,…n as 输出形参:将数据返回给调用它的程序。 SQL语句
相应的执行格式:
[execute] 存储过程名
@实参 output ,…n
输出实参:从存储过程将数据带回。
输入参数的传递方式有两种:
按位置传递:直接给出参数的值,实参与形参一一对应 通过参数名传递:使用“参数名=参数值“的形式,参
数可以任意顺序给出。
二、创建和执行存储过程
——2.使用输入参数
实例2:创建1个带有输入参数的存储过程p_cj2,查询 指定课程编号(作为输入参数)的学生成绩信息。 create procedure p_cj2 @kch char(3)=‘101’ --有默认值的输入形参:接收外部传递的数据
where 学生基本信息表.学号=成绩表.学号 and 学生基本信息表.学号 = @xh
go exec p_学生基本信息表 ‘020102‘ --(1)按位置传递参数
exec p_学生基本信息表 @xh=‘020103‘ --(2)通过参数名传递参数
注意:因输入参数没有默认值,所以不能用“exec p_学生基本信息表”
二、创建和执行存储过程
——2.使用输入参数
创建格式:
create proc[edure] 存储过程名
输入形参:接收 从外部传递给存 储过程的数据。
@形参 数据类型 [=默认值] ,…n
as SQLwk.baidu.com句
相应的执行格式:
[execute] 存储过程名 [ @实参= ] 值 ,…n
输入实参:将数据 传递给存储过程。
是一组预先写好的能实现某种功能的T-SQL程
序,是存储在服务器上的预编译集合。
存储过程是一种独立的数据库对象,在服务器
上创建和运行。
类似于编程语言中的过程或函数。
一、存储过程的基本概念
——2.存储过程的优点
模块化编程
执行速度快效率高
存储过程在执行1次后,其执行计划就保存在内存中,
return语句
第9章 存储过程和触发器
—— 存储过程的使用
学习目标
认知目标:
掌握存储过程的定义及优点
了解常用的系统存储过程
能力目标:
掌握存储过程的创建和执行(重点) 掌握存储过程中输入参数和输出参数的设
置和使用方法。 (难点)
一、存储过程的基本概念
——1.存储过程的含义及功能
存储过程的含义
use xscj go create procedure p_cj1 as select 学生基本信息表.学号,姓名,课程编号,成绩 from 学 生基本信息表, 成绩表 where 学生基本信息表.学号=成绩表.学号 order by 4 desc go exec p_cj1 --执行存储过程
as select * from 成绩表 where 课程编号= @课 程信息表h go exec p_cj2 exec p_cj2 ‘102‘ exec p_cj2 @kch=‘103‘
--(1)使用默认值执行存储过程 --(2)按位置传递参数 --(3)通过参数名传递参数
输入实参:将数据传递给存储过程。