存储过程的概念:存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过制定存储过程的名称并给出参数来执行。
存储过程的分类:
1. 系统存储过程
系统存储过程主要存储在master数据库中并以“sp_”为前缀,其主要作用是从系统表中获取信息,从而为系统管理员提供支持。例如:sp_rename系统存储过程可以更改当前数据库中用户创建对象的名称;sp_helptext存储过程可以显示规则,默认值或视图的文本信息。
sp_who存储过程用于查看当前用户、会话和进程的信息。sp_helpdb存储过程用于报告有关指定数据库或所有数据库信息。
2. 扩展存储过程
扩展存储过程是以在SQLServer 环境以外执行的动态链接库(DLL文件)来实现的,以前缀“xp_”来标识。对于用户来说,扩展存储过程和普通存储过程一样,可以用相同的方式来执行。
3. 自定义存储过程
即用户用T-SQL语句编写的、为了实现某一特定业务需求,在用户数据库中编写的T-SQL语句集合。自定义存储过程可以接受输入参数、向客户端返回结果信息、返回输出参数等。
自定义存储过程在使用时必须先进行创建,“#”表示本地临时存储过程,“##”表示全局临时存储过程。
1) 加密存储过程:利用WITH ENCRYPTION 子句,加密后的存储过程将无法查看其文本信息(存储过程的具体代码)。
2) 使用语句EXECUTE语句执行存储过程,也可以简写为EXEC
EXEC +存储过程名
3) 带参数的存储过程(输入参数、输出参数、参数默认值等)