sql sever 存储过程总结及实验

存储过程总结及实验

  • 概述
  • sql语句总结
  • 用法实例

概述

定义
存储过程是数据库中的一个功能,是一组为了完成特定功能、可以接收和返回用户参数的T-SQL语句预编译集合,经过编译后存储在数据库中,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、带参数执行以及其他强大的编程功能。存储过程在第一次执行时进行语法检查和编译,执行后它的执行计划就驻留在高速缓存中,用于后续调用。存储过程可以接受和输出参数、返回执行存储过程的状态值,还可以嵌套调用。
分类
(1)系统存储过程
系统存储过程主要存储在master数据库中,一般以“sp_”为前缀。
(2)用户自定义的存储过程
用户自定义存储过程是由用户创建并能够完成某些特定功能而编写的存储过程,它可以输入参数、向客户端返回表格或结果、消息等,也可以返回输出参数。
(3)扩展存储过程
扩展存储过程通常以“xp_”为前缀。

sql语句总结

Ⅰ 创建

create  procedure  存储过程名
[ @参数名 数据类型 [(长度)] [ ,……, ]]  @参数名 数据类型 [(长度)] output [ ,…… ]
[ with encryption ]
[ with recompile ]
as
T-SQL语句

说明:

  1. [ with encryption ]:可以为存储过程的创建文本加密
  2. [ with recompile ]:在每次执行时重新编译

Ⅱ 执行

execute  存储过程名

说明:

  1. execute命令表示执行存储过程,可以简写成exec。
  2. 存储过程名可以是已创建的用户自定义存储过程名,也可以是系统存储过程名或者扩展存储过程名。

Ⅲ 查看存储过程

Exec sp_depends 存储过程
Exec sp_help 存储过程
Exec sp_helptext 存储过程

说明:

  1. sp_depends显示存储过程所关联的数据表和字段信息。
  2. sp_help显示被查看的存储过程的所有者、类型、创建时间以及包含哪些参数等信息。
  3. sp_helptext显示被查看的存储过程的创建文本信息。
  4. 创建时被加密的存储过程的创建文本不能被查看。

Ⅳ 修改存储过程

alter  procedure  存储过程名
[ @参数名 数据类型 [(长度)] [ ,……, ]]  @参数名 数据类型 [(长度)] output [ ,…… ]
[ with encryption ]
[ with recompile ]
as
T-SQL语句

说明:与创建的语法结构一样。

Ⅴ 删除存储过程

DROP PROCEDURE {procedure}	[,...n]

用法实例

1 输入姓名,查这名学生最好成绩的课程号,并显示这名学生最好成绩的课程信息:

create procedure test1 
@name nvarchar(4),@课程号_最好成绩 nvarchar(10) output 
as 
select @课程号_最好成绩=(select top 1 课程号 from Score where 学号=(select 学号 from 学生 where 姓名=@name) order by 成绩 desc)
declare @sc nvarchar(10) 
exec test1 张三,@sc output 
select * 
from  Course 
where 课程编号=@sc

2 输入年龄段,查在年龄段之间的学生,默认18-22岁之间:

create procedure test2 
@N1 int=18,@N2 int=22
as
select 编号,姓名,性别,年龄 from 学生 
where 年龄 between @N1 and @N2
exec test2                --查询年龄在[18,22]的学生
exec test2 20,30          --查询年龄在[20,30]的学生
exec test2 @N2=30,@N1=20  -- 查询年龄在[20,30]的学生

3 删除存储过程test2:

drop procedure text2

你可能感兴趣的:(数据库,数据库,sqlserver)