数据库-存储过程

存储过程

简单来说存储就是为以后使用而保存的一条或多条SQL语句。

我们为什么要使用存储过程

  1. 把操作语句封装在一个易用的单元中,可以简化自己的操作。
  2. 由于不要求反复建立一系列处理步骤,因而保证了数据的一致性。
  3. 可以有效的防止错误的发生,你执行得越多,错误越有可能发生。
  4. 简化对变动的管理。
  5. 安全性,上一条让使用存储过程的人不用知道都执行了那些代码,这样就很好的保证了数据库的安全性。
  6. 因为存储过程通常以编译过的形式存储,所以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语句显示返回的值。

Posts in this Series