数据库-存储过程
存储过程
简单来说存储就是为以后使用而保存的一条或多条SQL语句。
我们为什么要使用存储过程
- 把操作语句封装在一个易用的单元中,可以简化自己的操作。
- 由于不要求反复建立一系列处理步骤,因而保证了数据的一致性。
- 可以有效的防止错误的发生,你执行得越多,错误越有可能发生。
- 简化对变动的管理。
- 安全性,上一条让使用存储过程的人不用知道都执行了那些代码,这样就很好的保证了数据库的安全性。
- 因为存储过程通常以编译过的形式存储,所以DBMS处理命令所需的工作量少,很大的提高了性能。 换句话说使用存储过程有三个主要的好处: 简单、安全、高性能。 存储过程不仅仅只有优点还有缺点,我们使用他的时候不仅仅需要知道它的优点,还要知道缺点
- 在不同数据库中的存储过程语法会存在不一样,所以可移植性很差
- 在编写存储过程时需要你拥有更高的技能和使用经验。
创建存储过程
CREATE PROCEDURE MailingListCount AS
DECLARE @ cnt INTEGER
SELECT @cnt = COUNT(*)
FROM Customers
WHERE NOT cust_email IS NULL;
RETURN @cnt;
此存储过程中没有参数,调用程序检索SQL Server的返回代码提供的值。其中用DECLARE
语句生命了一个名为@cnt的局部变量(SQL Server中所有局部变量名都以@起头);然后在SELECT
语句中使用这个变量,让它包含COUNT()
函数的返回值;最后用RETURN @cnt
语句将计数返回给调用程序。
调用存储过程
我们创建存储过程的目的就是简化我们的操作,我们既然建立了存储过程就要去调用它。
DECLARE @ReturnValue INT
EXECUTE @ReturnValue = MailingListCount;
SELECT @ReturnValue;
这段代码声明了一个变量来保存存储过程返回的任何值,然后执行存储过程,在使用SELECT语句显示返回的值。