浅谈存储过程和触发器
上一篇 / 下一篇 2012-05-14 09:59:24 / 个人分类:数据库
什么是存储过程呢?官方是这样定义的,存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
C'y-_i+|rm051Testing软件测试网k!b [dx2v.Cab1、创建存储过程语句如下:51Testing软件测试网e"|_8Ol/sv(p iZ
|n MT\ ~D+q0createprocedure 存储过程名51Testing软件测试网|:\:T.ER c s@6G bCL!}S0@[参数名] [类型],@[参数名][类型] 3G0A-|2f.n^G!d7B0P \+P| Iqo6[G0as '~)RX5`k0:G/x rX~0@iQ0begin51Testing软件测试网%m(z9`OWP W\#Gc0D u0 自定义的功能51Testing软件测试网)nU7~0\8~afP| 51Testing软件测试网:kH$? K$K3`end Uyc(v?)f|F y.}0 |
2、调用存储过程
X Eg9g/Qbe8AM:p0&B?K2Q-[+A,j0 exec sp_name [参数名]51Testing软件测试网 {(H(] _oL3jiG
9IkB3I,D?0 3、删除存储过程
+u/q-f9r8`Ts2pZx051Testing软件测试网y3D;K0bFCmNXBdrop proceduresp_name51Testing软件测试网j @Ij+z)w
2fkYg4O/s,Q"]6WYd0 其实,说白了,存储过程就是一类特殊的函数,只要我们给它合适的参数就可以直接调用,跟调用API函数差不多,唯一不同的就是API函数大部分是别人写的,而存储过程我们一般都是自己写。
|U9C ag8I05lrB4U*^4R,|)rLd+b0 注意:不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程。
(oyL#?1SL051Testing软件测试网7C-UzEo那么什么是触发器呢?严格意思上说,触发器就是存储过程,只不过它的执行不是由程序调用,也不是手工启动,而是由事件来触发。
G"~+BGF(h]051Testing软件测试网/?*m3}\^创建语句如下:
)r7jm.[4b X|8] x%B051Testing软件测试网-q ZTI\7xsv%D8IPn CREATE TRIGGER`<databaseName>`.`<triggerName>`51Testing软件测试网RU/Y p)N 51Testing软件测试网Q MJB-M*p]< [ BEFORE |AFTER ] > < [ INSERT | UPDATE | DELETE ] >51Testing软件测试网d Vm4ori 51Testing软件测试网+t\(N0hL b8XON <tableName>51Testing软件测试网1al.ez!c-CC A 'H ^{'f4O,f\1H0FOR EACH ROW51Testing软件测试网vr:J] a-y&mAo jf%B*be0BEGIN |