论述题 18.  存储过程是什么?它有哪些优点?
【正确答案】SQL语句执行的时候,要首先编译,然后再被执行。在大型数据库系统中,为了提高效率,将为了完成特定功能的SQL语句集进行编译优化后,存储在数据库服务器中,用户通过指定存储过程的名字来调用执行。具体而言,存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后,再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
   例如,如下为一个创建存储过程的常用语法。
   create procedure sp_name@[参数名][类型]
   as
   begin
   ...
   end
   调用存储过程语法:exec sp name[参数名]
   删除存储过程语法:drop procedure sp_name
   从上面的介绍可以发现,使用存储过程可以增强SQL语言的功能和灵活性。由于用流程控制语句编写存储过程具有很强的灵活性,所以,使用存储过程可以完成复杂的判断和运算,并且可以保证数据的安全性和完整性,同时,存储过程可以使没有权限的用户在控制之下间接地存取数据库,也保证了数据的安全。
   具体而言,存储过程主要有如下优点:
   1)执行效率高。
   2)减少网络流量。因为在调用的时候不需要每次都把SQL语句传输到数据库上。
   3)安全机制好。通过对存储过程进行授权,从而保证安全性。
【答案解析】