SQL执行存储过程

SQL执行存储过程,存储过程的执行远比编写要频繁得多,因此我们先介绍存储过程的执行。执行存储过程的SQL语句很简单,即EXECUTE。EXECUTE接受存储过程名和需要传递给它的任何参数。请看下面的例子(你无法运行这个例子,因为AddNewProduct这个存储过程还不存在):

    EXECUTE AddNewProduct('JTS01',
                            'Stuffed Eiffel Tower',
                            6.49,
                            'Plush stuffed toy with
    ➥the text La Tour Eiffel in red white and blue');

这里执行一个名为AddNewProduct的存储过程,将一个新产品添加到Products表中。AddNewProduct有四个参数,分别是:供应商ID(Vendors表的主键)、产品名、价格和描述。这4个参数匹配存储过程中4个预期变量(定义为存储过程自身的组成部分)。此存储过程将新行添加到Products表,并将传入的属性赋给相应的列。

我们注意到,在Products表中还有另一个需要值的列prod_id列,它是这个表的主键。为什么这个值不作为属性传递给存储过程?要保证恰当地生成此ID,最好是使生成此ID的过程自动化(而不是依赖于最终用户的输入)。这也是这个例子使用存储过程的原因。以下是存储过程所完成的工作:

  • 验证传递的数据,保证所有4个参数都有值;
  • 生成用作主键的唯一ID;
  • 将新产品插入Products表,在合适的列中存储生成的主键和传递的数据。

这就是存储过程执行的基本形式。对于具体的DBMS,可能包括以下的执行选择。

  • 参数可选,具有不提供参数时的默认值。
  • 不按次序给出参数,以“参数=值”的方式给出参数值。
  • 输出参数,允许存储过程在正执行的应用程序中更新所用的参数。
  • 用SELECT语句检索数据。
  • 返回代码,允许存储过程返回一个值到正在执行的应用程序。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!

 

SQL教程