一、存储过程概念
就是一条或者多条T-SQL 语句的集合,可视为数据库的批处理文件,但不仅限于此
1)存储过程的优点
- 加快系统运行速度
- 封装复杂操作
- 实现代码复用
- 增强安全性
- 减少网络流量
2)存储过程的类型
- 系统存储过程
以sp_ 为前缀,主要存储在master 数据库中
- 本地存储过程
- 扩展存储过程
通常以xp_ 为前缀
- 临时存储过程
- 本地临时存储过程,以“#”作为其名称的第一个字符,命名查看T-SQL 语句命名规范
- 全局临时存储过程,以“##”开始则该存储过程将成为一个存储在tempdb 数据库中的全局临时存储过程
- 远程存储过程
位于远程服务器上的存储过程。
二、创建和使用存储过程
1)创建存储过程
CREATE PROCEDURE | PROC <procedure_name>[; number]
[{@parameter data_type}]
[VARYING] [ = default] [OUTPUT] [,...n1]
[ WITH {RECOMP | ENCRYPTION | RECOMPILE,ENCRYPTION} ]
[ FOR REPLICATION]
AS sql_statement[,...n2]
- RECOMP 表明SQL SERVER 不会缓存该存储过程的计划,该存储过程在运行时重新编译,ENCRYPTION 表示加密syscomments 表中包含CREATE PROCEDURE 语句文本条目。使用ENCRYPTION 可防止他人查看或修改存储过程定义的文本
2、使用存储过程
[ EXECUTE | EXEC]
{ [@return_status= ]
{<procedure_name>[;number] | @procedure_name_var}
[ [ @parameter = ] {values | @variable[OUTPUT] | [DEFAULT ] } ]
[,...n]
[WITH RECOMPILE ] }
- procedure_name 调用的存储过程名称
- procedure_name_var 局部定义变量名,代表存储过程名称
3、修改存储过程
同创建存储过程修改CREATE 为ALTER
4、删除存储过程
DROP PROCEDURE [,…n]