数据库-存储过程(概念、优缺点、分类)
(1)概念:
① 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集。经编译后存储在数据库 中。
② 存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过 程带有参数)来执行它。
③ 存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中。
④ 存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量。
⑤ 同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。
(2)优点:
① 增强了SQL语句的功能和灵活性
② 不需要反复建立一系列处理步骤,保证了数据的完整性
③ 降低了网络的通信量,客户端调用存储过程只需要传存储过程名和相关参数即可,与传输SQL语 句相比自然数据量少了很多
④ 增强了使用的安全性,通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而 保证数据的安全。
⑤ 可以实现集中控制,当规则发生改变时,只需要修改存储过程就可以啦。
(3)缺点:
① 调试不是很方便
② 可能没有创建存储过程的权利
③ 重新编译问题
④ 移植性问题
(4)分类:
① 系统存储过程:以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作。
② 本地存储过程:用户创建的存储过程是由用户创建并完成某一特定功能的存储过程,事实上一般所说的存储过程就是指本地存储过程。
③ 临时存储过程:分为两种存储过程:
一是本地临时存储过程,以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它;
二是全局临时存储过程,以两个井字号(##)号开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程,全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。
④ 远程存储过程:在SQL Server2005中,远程存储过程(Remote Stored Procedures)是位于远程服务器上的存储过程,通常可以使用分布式查询和EXECUTE命令执行一个远程存储过程。
⑤ 扩展存储过程:扩展存储过程(Extended Stored Procedures)是用户可以使用外部程序语言编写的存储过程,而且扩展存储过程的名称通常以xp_开头