首页 > 在什么情况下需要使用存储过程?

在什么情况下需要使用存储过程?

**一般开发的Web项目中没有使用过存储过程。
所以有疑问,在什么情况下需要使用存储过程?**


为什么需要存储过程?
关系数据库是基于关系模型的数据库系统,SQL是基于关系运算的声明式语言。
SQL可以满足许多用户的查询需要,但是并不是所有需求都可以用声明的方式表达的。
存储过程(stored procedure)属于过程式语言,“过程”的意思就是一条一条执行指令。

存储过程扩展了DBMS的能力,在数据(表,关系,relation)与用户之间提供了一层抽象。
同样的功能,用sp实现相比在应用程序里实现的优点有:

  1. 与DBMS无缝集成,该功能是数据库系统的一部分,而不是与数据库割裂开。

  2. 当需要改动该功能时(修bug,或改进),只需要改sp,访问sp的应用程序无需改动。

对于事务(ACID Transaction), 最可靠的实现方式就是存储过程。
对安全性要求高的系统,用户是不允许直接update表的,而是用存储过程来封装update语句,只给用户执行相应存储过程的权限。对用户来说,存储过程就是他与数据库交互的接口。

【热门文章】
【热门文章】