SQL的存储过程的本质
SQL的存储过程到底有哪些内容呢?许多初学者感到渺茫而望而生畏。
要理解存储过程的基本概念,可以从已经熟悉的视图、触发器的比较中,来窥探它的本来面目。
1、视图仅是以已经建立的表的基础上进行对表的数据进行操作,如增加、更改、删除表的内容并显示表的内容。特点,它不能创建、更改、删除表本身,如表名或字段。
2、触发器可以借用对表的内容的增加、更改、删除的动作,产生一个类似控件中的“命令控件”的动作命令,并以这个动作为基础,产生执行一系列的功能,它可以对表本身及表的内容进行操作,但它不能显示,要显示的话,必须借用表或视图,当然VB等语言中有其他的方法来显示和调用。
3、存储过程具有触发器的全部功能,但是,它的动作是依赖程序代码的运行来执行的,如在VB的程序中,如OPENUPDATEEXECUTE(执行)等许多语句,通过对SQL中建立的某个具体的存储过程(也有许多语句,如UPDATEEXECUTE等等)的调用来执行。所以,“触
发器是一种特殊的存储过程”,就容易理解了。可见,把触发器的功能代码赋以一个名字,就是存储过程;把存储过程的功能代码以表的内容的操作来触发执行,则就是触发器。
4、存储过程内部,通过EXECUTE语句,还可以直接执行其它的存储过程,这是视图所无法实现的。
小结:存储过程主要是满足远程调用的目的,它相当于一个存储在远处(如SQL数据服务器)的函数,调用后驻存在服务机器的内存上,再次调用时优先在服务机器上调用,因而大量代码数据避免重复远程网络调用而节省网络资源。 但是,它也占用了服务机器的内存资源,所谓没有免费的午餐,不过如此而已。
例如:“dt_备件号选表整理存储过程一层”是具体的一个存储过程的名字,内容则完全相当于一个视图。
create procedure dbo. dt_备件号选表整理存储过程一层 AS
SELECT ID, 备件号 AS 搜索字
FROM dbo.备件号选表
GO

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。